/// <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); }
/// <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); }