コード例 #1
0
        public static ICodedDataValue AsCodedValue(this HL7Element element, int index = -1, string tableId = "",
                                                   Dictionary <string, string> table  = null)
        {
            string value = element.ElementValue(index);

            return(new CodedDataValue(value, table, tableId));
        }
コード例 #2
0
 /// <summary>
 /// Safely return Value of the desired Element.  This relieves the need to check
 /// for ethe existence or null value of the required element.
 /// </summary>
 /// <param name="element">The Containing element element</param>
 /// <param name="index">Zero based index of the element required</param>
 /// <returns>A string represenation of the hl7 field.</returns>
 public static string ElementValue(this HL7Element element, int index)
 {
     return((element == null) ? null :
            (index == -1) ? element.ToString() :
            (index == 0 && element.Count == 0) ? element.Value :
            (element.Count > index) ? element[index].ToString() : "");
 }
コード例 #3
0
        public static ICodedDataValue AsCodedValue(this HL7Element element, int index = -1, string tableId = "",
                                                   IDataTableProvider tables          = null)
        {
            string value = element.ElementValue(index);

            return(new CodedDataValue(value, tableId, tables));
        }
コード例 #4
0
            public override void Populate(HL7Element element, IEnumerable <string> tableIds = null)
            {
                var tblsUsed = 0;

                TelephoneNumber            = element.ElementValue(0);
                TelecommunicationUseCode   = NewID(element.ElementValue(1), NextTableId(tableIds, ref tblsUsed));
                TelecommunicationEquipment = NewID(element.ElementValue(2), NextTableId(tableIds, ref tblsUsed));
            }
コード例 #5
0
            public override void Populate(HL7Element element, IEnumerable <string> tableIds = null)
            {
                var tblsUsed = 0;

                NamespaceId     = NewIS(element.ElementValue(0), NextTableId(tableIds, ref tblsUsed));
                UniversalId     = element.ElementValue(1);
                UniversalIdType = NewID(element.ElementValue(2), NextTableId(tableIds, ref tblsUsed));
            }
コード例 #6
0
            public override void Populate(HL7Element element, IEnumerable <string> tableIds = null)
            {
                var tblsUsed = 0;

                VersionID              = NewID(element.ElementValue(0), NextTableId(tableIds, ref tblsUsed));
                Internationalization   = element.IndexedElement(1).AsCE(tableIds?.Skip(tblsUsed), Tables);
                tblsUsed              += CE_CodedElement.TotalCodedFieldCount;
                InternationalVersionID = element.IndexedElement(2).AsCE(tableIds?.Skip(tblsUsed), Tables);
            }
コード例 #7
0
        /// <summary>
        /// Safely Extract the Supplied element assuming the element contains suitable contents.
        /// </summary>
        /// <param name="element">Element representing or containing the HD Data</param>
        /// <param name="index">Optionally the sub element </param>
        /// <returns>A fully populated HL7 HD object</returns>
        public static HD_HierarchicDesignator AsHD(this HL7Element element, int index = -1, IEnumerable <string> tableIds = null, IDataTableProvider tables = null)
        {
            var el = element.IndexedElement(index);

            if (el == null)
            {
                return(null);
            }
            return(new HD_HierarchicDesignator(el, tableIds, tables));
        }
コード例 #8
0
            private void FromElement(HL7Element element)
            {
                var comparitor = element.ElementValue(0);
                var separator  = element.ElementValue(2);

                Comparitor        = (Constants.AllowedComparitors.Contains(comparitor)) ? comparitor : "";
                Num1              = new NM_Number(element.IndexedElement(1));
                SeparatorOrSuffix = (Constants.AllowedSeparators.Contains(separator)) ? separator : "";
                Num2              = new NM_Number(element.IndexedElement(3));
            }
コード例 #9
0
        public static HL7Element AsElement(this IEnumerable <CX_CompositeId> cxs)
        {
            var element = new HL7Element(String.Empty, '~');

            if (cxs.Any())
            {
                foreach (var cx in cxs)
                {
                    element.Add(cx);
                }
            }
            return(element);
        }
コード例 #10
0
        /// <summary>
        /// Safely Extract a Date Range from the Supplied element assuming suitable contents;
        /// </summary>
        /// <param name="element"></param>
        /// <param name="index"></param>
        /// <returns></returns>
        public static DR_DateRange AsDateRange(this HL7Element element, int index = -1)
        {
            var el = element.IndexedElement(index);

            if (el == null)
            {
                return(null);
            }
            return(new DR_DateRange()
            {
                DateFrom = (el.Count == 0) ? ToLocalDateTime(el.Value) : ToLocalDateTime(el[0].Value),
                DateTo = (el.Count < 2) ? ToLocalDateTime("") : ToLocalDateTime(el[1].Value)
            });
        }
コード例 #11
0
        public static IEnumerable <XAD_ExtendedAddress> AsXADs(this HL7Element element, IEnumerable <string> tableIds = null, IDataTableProvider tables = null)
        {
            var xads = new List <XAD_ExtendedAddress>();

            if (element.IsRepeatingField)
            {
                xads.AddRange(element.Select(e => new XAD_ExtendedAddress(e, tableIds, tables)));
            }
            else
            {
                xads.Add(new XAD_ExtendedAddress(element, tableIds, tables));
            }
            return(xads);
        }
コード例 #12
0
        /// <summary>
        /// Safely Extract all HL7 XCN (Extended Composite ID and Name) from a HL7 Element assuming suitable content
        /// </summary>
        /// <param name="element"></param>
        /// <returns>An IEnumerable of HL7 XCN Objects</returns>
        public static IEnumerable <XCN_ExtendedCompositeIDAndName> AsXCNs(this HL7Element element, IEnumerable <string> tableIds = null, IDataTableProvider tables = null)
        {
            var xcns = new List <XCN_ExtendedCompositeIDAndName>();

            if (element.IsRepeatingField)
            {
                xcns.AddRange(element.Select(e => new XCN_ExtendedCompositeIDAndName(e, tableIds, tables)));
            }
            else
            {
                xcns.Add(new XCN_ExtendedCompositeIDAndName(element, tableIds, tables));
            }
            return(xcns);
        }
コード例 #13
0
        public static IEnumerable <XPN_ExtendedPersonName> AsXPNs(this HL7Element element, IEnumerable <string> tableIds = null, IDataTableProvider tables = null)
        {
            var xpns = new List <XPN_ExtendedPersonName>();

            if (element.IsRepeatingField)
            {
                xpns.AddRange(element.Select(e => new XPN_ExtendedPersonName(e, tableIds, tables)));
            }
            else
            {
                xpns.Add(new XPN_ExtendedPersonName(element, tableIds, tables));
            };
            return(xpns);
        }
コード例 #14
0
            public override void Populate(HL7Element element, IEnumerable <string> tableIds = null)
            {
                var tblsUsed = 0;

                OrganizationName         = element.ElementValue(0);
                OrganizationNameTypeCode = NewIS(element.ElementValue(1), NextTableId(tableIds, ref tblsUsed));
                ID                 = element.IndexedElement(2);
                CheckDigit         = element.ElementValue(3);
                CheckDigitScheme   = NewID(element.ElementValue(4), NextTableId(tableIds, ref tblsUsed));
                AssigningAuthority = element.AsHD(5, tableIds?.Skip(tblsUsed), Tables);
                tblsUsed          += HD_HierarchicDesignator.TotalCodedFieldCount;
                IdentifierTypeCode = NewIS(element.ElementValue(6), NextTableId(tableIds, ref tblsUsed));
                AssigningFacility  = element.AsHD(7, tableIds, Tables);
            }
コード例 #15
0
        /// <summary>
        /// Safely Extract all HL7 CE Coded Elements type from a HL7 Element assuming sutiable content
        /// </summary>
        /// <param name="element"></param>
        /// <returns>an IEnumerable of HL7 CE objects</returns>

        public static IEnumerable <CE_CodedElement> AsCEs(this HL7Element element, IEnumerable <string> tableIds = null, IDataTableProvider tables = null)
        {
            var ces = new List <CE_CodedElement>();

            if (element.IsRepeatingField)
            {
                ces.AddRange(element.Select(e => new CE_CodedElement(e, tableIds, tables)));
            }
            else
            {
                ces.Add(new CE_CodedElement(element, tableIds, tables));
            }
            return(ces);
        }
コード例 #16
0
        public static IEnumerable <CX_CompositeId> AsCXs(this HL7Element element, IEnumerable <string> tableIds = null, IDataTableProvider tables = null)
        {
            var cxs = new List <CX_CompositeId>();

            if (element.IsRepeatingField)
            {
                cxs.AddRange(element.Select(e => new CX_CompositeId(e, tableIds, tables)));
            }
            else
            {
                cxs.Add(new CX_CompositeId(element, tableIds, tables));
            }
            return(cxs);
        }
コード例 #17
0
            public override void Populate(HL7Element element, IEnumerable <string> tableIds = null)
            {
                var tblsUsed = 0;

                FamilyName = element.ElementValue(0);
                GivenName  = element.ElementValue(1);
                SecondGivenNamesOrInitials = element.ElementValue(2);
                Suffix                 = element.ElementValue(3);
                Prefix                 = element.ElementValue(4);
                Degree                 = NewIS(element.IndexedElement(5), NextTableId(tableIds, ref tblsUsed), Tables);
                NameTypeCode           = NewID(element.IndexedElement(6), NextTableId(tableIds, ref tblsUsed));
                NameRepresentationCode = NewID(element.IndexedElement(7), NextTableId(tableIds, ref tblsUsed), Tables);
                NameContext            = element.IndexedElement(8).AsCE(tableIds, Tables);
                tblsUsed              += CE_CodedElement.TotalCodedFieldCount;
                NameAssemblyOrder      = NewID(element.IndexedElement(9), NextTableId(tableIds, ref tblsUsed), Tables);
            }
コード例 #18
0
            public override void Populate(HL7Element element, IEnumerable <string> tableIds = null)
            {
                var tblsUsed = 0;

                ID                 = element.ElementValue(0);
                CheckDigit         = element.ElementValue(1);
                CheckDigitScheme   = NewID(element.ElementValue(2), NextTableId(tableIds, ref tblsUsed), Tables);
                AssigningAuthority = element.AsHD(3, tableIds?.Skip(tblsUsed), Tables);
                tblsUsed          += HD_HierarchicDesignator.TotalCodedFieldCount;

                IdentifierTypeCode = NewID(element.ElementValue(4), NextTableId(tableIds, ref tblsUsed), Tables);
                AssigningFacility  = element.AsHD(5, tableIds?.Skip(tblsUsed), Tables);
                tblsUsed          += HD_HierarchicDesignator.TotalCodedFieldCount;

                EffectiveDate  = element.FromTS(6);
                ExpirationDate = element.FromTS(7);
            }
コード例 #19
0
            public override void Populate(HL7Element element, IEnumerable <string> tableIds = null)
            {
                var tblsUsed = 0;

                StreetAddress              = new SAD_StreetAddress(element.IndexedElement(0));
                OtherDesignation           = element.ElementValue(1);
                City                       = element.ElementValue(2);
                StateOrProvince            = element.ElementValue(3);
                ZipOrPostalCode            = element.ElementValue(4);
                Country                    = NewID(element.ElementValue(5), NextTableId(tableIds, ref tblsUsed), Tables);
                AddressType                = NewID(element.ElementValue(6), NextTableId(tableIds, ref tblsUsed), Tables);
                OtherGeographicDesignation = element.ElementValue(7);
                CountyOrParishCode         = NewIS(element.ElementValue(8), NextTableId(tableIds, ref tblsUsed), Tables);
                CensusTract                = NewIS(element.ElementValue(9), NextTableId(tableIds, ref tblsUsed), Tables);
                AddressRepresentationCode  = NewID(element.ElementValue(10), NextTableId(tableIds, ref tblsUsed), Tables);
                AddressValidityRange       = element.AsDateRange(11);
            }
コード例 #20
0
        /// <summary>
        /// Extract a DateTime field from a supplied element assuming suitable content
        /// NOTE: Dates and Tims use the DateTime.Kind property to correctly convert the date
        /// from UTC and Local Times.  Use the LocaLtime and UTCTime extensions to safely
        /// handle the returned DateTime.
        /// </summary>
        /// <param name="element"></param>
        /// <param name="index"></param>
        /// <returns></returns>
        public static DateTime?FromTS(this HL7Element element, int index = -1)
        {
            var el = element.ElementValue(index);

            if (String.IsNullOrWhiteSpace(el))
            {
                return(null);
            }
            try
            {
                return(AsDateTime(el));
            }
            catch
            {
                return(null);
            }
        }
コード例 #21
0
 public override void Populate(HL7Element element, IEnumerable <string> tableIds = null)
 {
     if (element.Count == 0)
     {
         Data = element;
     }
     else
     {
         var tblsUsed = 0;
         SourceApplication = element.AsHD(0, tableIds, Tables);
         tblsUsed         += HD_HierarchicDesignator.TotalCodedFieldCount;
         TypeOfData        = NewID(element.ElementValue(1), NextTableId(tableIds, ref tblsUsed));
         DataSubType       = NewID(element.ElementValue(2), NextTableId(tableIds, ref tblsUsed));
         Encoding          = NewID(element.ElementValue(3), NextTableId(tableIds, ref tblsUsed));
         Data = element.ElementValue(4);
     };
 }
コード例 #22
0
            public override void Populate(HL7Element element, IEnumerable <string> tableIds = null)
            {
                var tablesUsed = 0;

                Identifier = element.ElementValue(0);

                Text = element.ElementValue(1);

                NameOfCodingSystem = NewIS(
                    element.ElementValue(2), NextTableId(tableIds, ref tablesUsed));

                AlternateIdentifier = element.ElementValue(3);

                AlternateText = element.ElementValue(4);

                NameOfAlternateCodingSystem = NewIS(
                    element.ElementValue(5), NextTableId(tableIds, ref tablesUsed));
            }
コード例 #23
0
            public override void Populate(HL7Element element, IEnumerable <string> tableIds = null)
            {
                if (element.IsRepeatingField)
                {
                    throw new InvalidOperationException("AsXCN() called on repeating field.\r\n" +
                                                        " The Field in question should be treated as an Enumerable type");
                }

                ID         = element.ElementValue(0);
                FamilyName = element.ElementValue(1);
                GivenName  = element.ElementValue(2);
                SecondGivenNamesOrInitials = element.ElementValue(3);
                Suffix = element.ElementValue(4);
                Prefix = element.ElementValue(5);

                var tblsUsed = 0;

                Degree = NewIS(element.ElementValue(6), NextTableId(tableIds, ref tblsUsed));

                SourceTable        = element.ElementValue(7);
                AssigningAuthority = element.IndexedElement(8).AsHD(tableIds, Tables);
                tblsUsed          += HD_HierarchicDesignator.TotalCodedFieldCount;;

                NameTypeCode         = NewID(element.ElementValue(9), NextTableId(tableIds, ref tblsUsed));
                IdentifierCheckDigit = element.ElementValue(10);
                CheckDigitScheme     = element.ElementValue(11);
                IdentifierTypeCode   = element.ElementValue(12);

                AssigningFacility = element.IndexedElement(13).AsHD(tableIds, Tables);
                tblsUsed         += HD_HierarchicDesignator.TotalCodedFieldCount;

                NameRepresentationCode = NewID(element.ElementValue(14),
                                               NextTableId(tableIds, ref tblsUsed));
                NameContext = element.IndexedElement(15).AsCE();

                NameValidityRange = element.IndexedElement(16).AsDateRange();
                NameAssemblyOrder = NewID(element.ElementValue(17), NextTableId(tableIds, ref tblsUsed));
            }
コード例 #24
0
        public static DateTime?AsDateTime(this HL7Element element, DateTimeStyles dateTimeStyle = DateTimeStyles.None)
        {
            string dtText = element;

            return(AsDateTime(dtText, dateTimeStyle));
        }
コード例 #25
0
 public XTN_ExtendedTelecommunicationNumber(HL7Element element, IEnumerable <string> tableIds = null, IDataTableProvider tables = null)
     : base(element, tableIds, tables)
 {
 }
コード例 #26
0
 public static XPN_ExtendedPersonName AsXPN(this HL7Element element, IEnumerable <string> tableIds = null, IDataTableProvider tables = null)
 {
     return(new XPN_ExtendedPersonName(element, tableIds, tables));
 }
コード例 #27
0
 public CX_CompositeId(HL7Element element, IEnumerable <string> tableIds = null, IDataTableProvider tables = null)
     : base(element, tableIds, tables)
 {
 }
コード例 #28
0
 public XON_ExtendedCompositeNameForOrganizations(HL7Element element, IEnumerable <string> tableIds = null, IDataTableProvider tables = null)
     : base(element, tableIds, tables)
 {
 }
コード例 #29
0
        public static DateTime?AsUTCTime(this HL7Element element)
        {
            string dtText = element;

            return(ToUTCDateTime(dtText));
        }
コード例 #30
0
        public static DateTime?AsLocalTime(this HL7Element element)
        {
            string dtText = element;

            return(ToLocalDateTime(dtText));
        }