Ejemplo n.º 1
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));
                }
            }

            FacilityIdFac                       = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <EntityIdentifier>(segments[1], false, seps) : null;
            FacilityType                        = segments.Length > 2 && segments[2].Length > 0 ? segments[2] : null;
            FacilityAddress                     = segments.Length > 3 && segments[3].Length > 0 ? segments[3].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedAddress>(x, false, seps)) : null;
            FacilityTelecommunication           = segments.Length > 4 && segments[4].Length > 0 ? TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(segments[4], false, seps) : null;
            ContactPerson                       = segments.Length > 5 && segments[5].Length > 0 ? segments[5].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null;
            ContactTitle                        = segments.Length > 6 && segments[6].Length > 0 ? segments[6].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null;
            ContactAddress                      = segments.Length > 7 && segments[7].Length > 0 ? segments[7].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedAddress>(x, false, seps)) : null;
            ContactTelecommunication            = segments.Length > 8 && segments[8].Length > 0 ? segments[8].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(x, false, seps)) : null;
            SignatureAuthority                  = segments.Length > 9 && segments[9].Length > 0 ? segments[9].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdNumberAndNameForPersons>(x, false, seps)) : null;
            SignatureAuthorityTitle             = segments.Length > 10 && segments[10].Length > 0 ? segments[10] : null;
            SignatureAuthorityAddress           = segments.Length > 11 && segments[11].Length > 0 ? segments[11].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedAddress>(x, false, seps)) : null;
            SignatureAuthorityTelecommunication = segments.Length > 12 && segments[12].Length > 0 ? TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(segments[12], false, seps) : null;
        }
Ejemplo n.º 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));
                }
            }

            PrimaryKeyValueLdp  = segments.Length > 1 && segments[1].Length > 0 ? TypeSerializer.Deserialize <PersonLocation>(segments[1], false, seps) : null;
            LocationDepartment  = segments.Length > 2 && segments[2].Length > 0 ? segments[2] : null;
            LocationService     = segments.Length > 3 && segments[3].Length > 0 ? segments[3].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null;
            SpecialtyType       = segments.Length > 4 && segments[4].Length > 0 ? segments[4].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedElement>(x, false, seps)) : null;
            ValidPatientClasses = segments.Length > 5 && segments[5].Length > 0 ? segments[5].Split(seps.FieldRepeatSeparator, StringSplitOptions.None) : null;
            ActiveInactiveFlag  = segments.Length > 6 && segments[6].Length > 0 ? segments[6] : null;
            ActivationDateLdp   = segments.Length > 7 && segments[7].Length > 0 ? segments[7].ToNullableDateTime() : null;
            InactivationDateLdp = segments.Length > 8 && segments[8].Length > 0 ? segments[8].ToNullableDateTime() : null;
            InactivatedReason   = segments.Length > 9 && segments[9].Length > 0 ? segments[9] : null;
            VisitingHours       = segments.Length > 10 && segments[10].Length > 0 ? segments[10].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <VisitingHours>(x, false, seps)) : null;
            ContactPhone        = segments.Length > 11 && segments[11].Length > 0 ? TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(segments[11], false, seps) : null;
        }
Ejemplo n.º 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));
                }
            }

            SetIdNk1            = segments.Length > 1 && segments[1].Length > 0 ? segments[1].ToNullableUInt() : null;
            Name                = segments.Length > 2 && segments[2].Length > 0 ? segments[2].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedPersonName>(x, false, seps)) : null;
            Relationship        = segments.Length > 3 && segments[3].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[3], false, seps) : null;
            Address             = segments.Length > 4 && segments[4].Length > 0 ? segments[4].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedAddress>(x, false, seps)) : null;
            PhoneNumber         = segments.Length > 5 && segments[5].Length > 0 ? segments[5].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(x, false, seps)) : null;
            BusinessPhoneNumber = segments.Length > 6 && segments[6].Length > 0 ? segments[6].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(x, false, seps)) : null;
            ContactRole         = segments.Length > 7 && segments[7].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[7], false, seps) : null;
            StartDate           = segments.Length > 8 && segments[8].Length > 0 ? segments[8].ToNullableDateTime() : null;
            EndDate             = segments.Length > 9 && segments[9].Length > 0 ? segments[9].ToNullableDateTime() : null;
            NextOfKinAssociatedPartiesJobTitle       = segments.Length > 10 && segments[10].Length > 0 ? segments[10] : null;
            NextOfKinAssociatedPartiesJobCodeClass   = segments.Length > 11 && segments[11].Length > 0 ? TypeSerializer.Deserialize <JobCodeClass>(segments[11], false, seps) : null;
            NextOfKinAssociatedPartiesEmployeeNumber = segments.Length > 12 && segments[12].Length > 0 ? TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(segments[12], false, seps) : null;
            OrganizationNameNk1                  = segments.Length > 13 && segments[13].Length > 0 ? segments[13].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeNameAndIdNumberForOrganizations>(x, false, seps)) : null;
            MaritalStatus                        = segments.Length > 14 && segments[14].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[14], false, seps) : null;
            AdministrativeSex                    = segments.Length > 15 && segments[15].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[15], false, seps) : null;
            DateTimeOfBirth                      = segments.Length > 16 && segments[16].Length > 0 ? segments[16].ToNullableDateTime() : null;
            LivingDependency                     = segments.Length > 17 && segments[17].Length > 0 ? segments[17].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            AmbulatoryStatus                     = segments.Length > 18 && segments[18].Length > 0 ? segments[18].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            Citizenship                          = segments.Length > 19 && segments[19].Length > 0 ? segments[19].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            PrimaryLanguage                      = segments.Length > 20 && segments[20].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[20], false, seps) : null;
            LivingArrangement                    = segments.Length > 21 && segments[21].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[21], false, seps) : null;
            PublicityCode                        = segments.Length > 22 && segments[22].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[22], false, seps) : null;
            ProtectionIndicator                  = segments.Length > 23 && segments[23].Length > 0 ? segments[23] : null;
            StudentIndicator                     = segments.Length > 24 && segments[24].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[24], false, seps) : null;
            Religion                             = segments.Length > 25 && segments[25].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[25], false, seps) : null;
            MothersMaidenName                    = segments.Length > 26 && segments[26].Length > 0 ? segments[26].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedPersonName>(x, false, seps)) : null;
            Nationality                          = segments.Length > 27 && segments[27].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[27], false, seps) : null;
            EthnicGroup                          = segments.Length > 28 && segments[28].Length > 0 ? segments[28].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            ContactReason                        = segments.Length > 29 && segments[29].Length > 0 ? segments[29].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            ContactPersonsName                   = segments.Length > 30 && segments[30].Length > 0 ? segments[30].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedPersonName>(x, false, seps)) : null;
            ContactPersonsTelephoneNumber        = segments.Length > 31 && segments[31].Length > 0 ? segments[31].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(x, false, seps)) : null;
            ContactPersonsAddress                = segments.Length > 32 && segments[32].Length > 0 ? segments[32].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedAddress>(x, false, seps)) : null;
            NextOfKinAssociatedPartysIdentifiers = segments.Length > 33 && segments[33].Length > 0 ? segments[33].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <ExtendedCompositeIdWithCheckDigit>(x, false, seps)) : null;
            JobStatus                            = segments.Length > 34 && segments[34].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[34], false, seps) : null;
            Race     = segments.Length > 35 && segments[35].Length > 0 ? segments[35].Split(seps.FieldRepeatSeparator, StringSplitOptions.None).Select(x => TypeSerializer.Deserialize <CodedWithExceptions>(x, false, seps)) : null;
            Handicap = segments.Length > 36 && segments[36].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[36], false, seps) : null;
            ContactPersonSocialSecurityNumber = segments.Length > 37 && segments[37].Length > 0 ? segments[37] : null;
            NextOfKinBirthPlace = segments.Length > 38 && segments[38].Length > 0 ? segments[38] : null;
            VipIndicator        = segments.Length > 39 && segments[39].Length > 0 ? TypeSerializer.Deserialize <CodedWithExceptions>(segments[39], false, seps) : null;
            NextOfKinTelecommunicationInformation      = segments.Length > 40 && segments[40].Length > 0 ? TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(segments[40], false, seps) : null;
            ContactPersonsTelecommunicationInformation = segments.Length > 41 && segments[41].Length > 0 ? TypeSerializer.Deserialize <ExtendedTelecommunicationNumber>(segments[41], false, seps) : null;
        }
        public void FromDelimitedString_WithAllProperties_ReturnsCorrectlyInitializedFields()
        {
            IType expected = new ExtendedTelecommunicationNumber
            {
                TelephoneNumber                = "1",
                TelecommunicationUseCode       = "2",
                TelecommunicationEquipmentType = "3",
                CommunicationAddress           = "4",
                CountryCode                = 5,
                AreaCityCode               = 6,
                LocalNumber                = 7,
                Extension                  = 8,
                AnyText                    = "9",
                ExtensionPrefix            = "10",
                SpeedDialCode              = "11",
                UnformattedTelephoneNumber = "12",
                EffectiveStartDate         = new DateTime(2020, 1, 13, 0, 0, 13),
                ExpirationDate             = new DateTime(2020, 1, 14, 0, 0, 14),
                ExpirationReason           = new CodedWithExceptions
                {
                    IsSubcomponent = true,
                    Identifier     = "15"
                },
                ProtectionCode = new CodedWithExceptions
                {
                    IsSubcomponent = true,
                    Identifier     = "16"
                },
                SharedTelecommunicationIdentifier = new EntityIdentifier
                {
                    IsSubcomponent = true,
                    EntityId       = "17"
                },
                PreferenceOrder = 18
            };

            IType actual = new ExtendedTelecommunicationNumber();

            actual.FromDelimitedString("1^2^3^4^5^6^7^8^9^10^11^12^20200113000013^20200114000014^15^16^17^18");

            expected.Should().BeEquivalentTo(actual);
        }
        public void ToDelimitedString_WithAllProperties_ReturnsCorrectlySequencedFields()
        {
            IType hl7Type = new ExtendedTelecommunicationNumber
            {
                TelephoneNumber                = "1",
                TelecommunicationUseCode       = "2",
                TelecommunicationEquipmentType = "3",
                CommunicationAddress           = "4",
                CountryCode                = 5,
                AreaCityCode               = 6,
                LocalNumber                = 7,
                Extension                  = 8,
                AnyText                    = "9",
                ExtensionPrefix            = "10",
                SpeedDialCode              = "11",
                UnformattedTelephoneNumber = "12",
                EffectiveStartDate         = new DateTime(2020, 1, 13, 0, 0, 13),
                ExpirationDate             = new DateTime(2020, 1, 14, 0, 0, 14),
                ExpirationReason           = new CodedWithExceptions
                {
                    Identifier = "15"
                },
                ProtectionCode = new CodedWithExceptions
                {
                    Identifier = "16"
                },
                SharedTelecommunicationIdentifier = new EntityIdentifier
                {
                    EntityId = "17"
                },
                PreferenceOrder = 18
            };

            string expected = "1^2^3^4^5^6^7^8^9^10^11^12^20200113000013^20200114000014^15^16^17^18";
            string actual   = hl7Type.ToDelimitedString();

            Assert.Equal(expected, actual);
        }