/// <summary>
        /// Create a person name from the specified name set
        /// </summary>
        public ON CreateON(MARC.HI.EHRS.SVC.Core.DataTypes.NameSet nameSet)
        {
            EntityNameUse enUse = EntityNameUse.Legal;

            if (nameSet == null)
            {
                return(null);
            }

            try
            {
                enUse = (EntityNameUse)Enum.Parse(typeof(EntityNameUse), nameSet.Use.ToString());
            }
            catch
            {
                throw;
            }

            ON retVal = new ON();

            if (enUse != EntityNameUse.Search)
            {
                retVal.Use = new SET <CS <EntityNameUse> >(enUse);
            }

            // Parts
            foreach (var part in nameSet.Parts)
            {
                retVal.Part.Add(new ENXP(part.Value));
            }

            return(retVal);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Create a person name from the specified name set
        /// </summary>
        public PN CreatePN(MARC.HI.EHRS.SVC.Core.DataTypes.NameSet nameSet, List <IResultDetail> dtls)
        {
            PN retVal = new PN();

            try
            {
                if (nameSet.Use == NameSet.NameSetUse.OfficialRecord)
                {
                    retVal.Use = SET <CS <EntityNameUse> > .CreateSET(EntityNameUse.Legal, EntityNameUse.OfficialRecord);
                }
                else if (nameSet.Use != NameSet.NameSetUse.Search)
                {
                    retVal.Use = new SET <CS <EntityNameUse> >((EntityNameUse)Enum.Parse(typeof(EntityNameUse), nameSet.Use.ToString()));
                }
            }
            catch
            {
                throw;
            }

            // Parts
            foreach (var part in nameSet.Parts)
            {
                switch (part.Type)
                {
                case NamePart.NamePartType.Family:
                    retVal.Part.Add(new ENXP(part.Value, EntityNamePartType.Family));
                    break;

                case NamePart.NamePartType.Delimeter:
                    retVal.Part.Add(new ENXP(part.Value, EntityNamePartType.Delimiter));
                    break;

                case NamePart.NamePartType.Given:
                    retVal.Part.Add(new ENXP(part.Value, EntityNamePartType.Given));
                    break;

                case NamePart.NamePartType.Prefix:
                    retVal.Part.Add(new ENXP(part.Value, EntityNamePartType.Prefix));
                    break;

                case NamePart.NamePartType.Suffix:
                    retVal.Part.Add(new ENXP(part.Value, EntityNamePartType.Suffix));
                    break;

                default:
                    retVal.Part.Add(new ENXP(part.Value));
                    dtls.Add(new PersistenceResultDetail(ResultDetailType.Warning, String.Format("Can't represent name part type '{0}' in HL7v3", part.Type), null));
                    break;
                }
            }

            return(retVal);
        }
        /// <summary>
        /// Create a person name from the specified name set
        /// </summary>
        public PN CreatePN(MARC.HI.EHRS.SVC.Core.DataTypes.NameSet nameSet)
        {
            EntityNameUse enUse = EntityNameUse.Legal;

            try
            {
                enUse = (EntityNameUse)Enum.Parse(typeof(EntityNameUse), nameSet.Use.ToString());
            }
            catch
            {
                throw;
            }

            PN retVal = new PN();

            if (enUse != EntityNameUse.Search)
            {
                retVal.Use = new SET <CS <EntityNameUse> >(enUse);
            }

            // Parts
            foreach (var part in nameSet.Parts)
            {
                switch (part.Type)
                {
                case NamePart.NamePartType.Family:
                    retVal.Part.Add(new ENXP(part.Value, EntityNamePartType.Family));
                    break;

                case NamePart.NamePartType.Delimeter:
                    retVal.Part.Add(new ENXP(part.Value, EntityNamePartType.Delimiter));
                    break;

                case NamePart.NamePartType.Given:
                    retVal.Part.Add(new ENXP(part.Value, EntityNamePartType.Given));
                    break;

                case NamePart.NamePartType.Prefix:
                    retVal.Part.Add(new ENXP(part.Value, EntityNamePartType.Prefix));
                    break;

                case NamePart.NamePartType.Suffix:
                    retVal.Part.Add(new ENXP(part.Value, EntityNamePartType.Suffix));
                    break;

                default:
                    break;
                }
            }

            return(retVal);
        }