public ServerEntityAttributeProvider(ServerEntity entity)
		{
			_entity = entity;
			_fieldMap = EntityDicomMapManager.Get(entity.GetType());

		}
		private void UpdateEntity(ServerEntity entity)
		{
			EntityDicomMap entityMap = EntityDicomMapManager.Get(entity.GetType());

			foreach (BaseImageLevelUpdateCommand command in _commands)
			{
				ImageLevelUpdateEntry entry = command.UpdateEntry;
				if (!entityMap.ContainsKey(entry.TagPath.Tag))
					continue;

				string value = entry.GetStringValue();
				DicomTag tag = entry.TagPath.Tag;
				if (tag.TagValue == DicomTags.PatientsSex)
				{
					// Valid Patient's Sex value : "M", "F" or "O"
					if (!String.IsNullOrEmpty(value) && !value.ToUpper().Equals("M") && !value.ToUpper().Equals("F"))
						value = "O";
				}
                int maxLength = tag.VR.Equals(DicomVr.PNvr) ? 64 : (int)tag.VR.MaximumLength;
                if (value != null && value.Length > maxLength)
                {
                    Platform.Log(LogLevel.Warn, "Truncating value to VR Length: {0}: {1}", tag.VR.Name, value);
                    if (!entityMap.Populate(entity, entry.TagPath.Tag, value.Substring(0, maxLength)))
                        throw new ApplicationException(String.Format("Unable to update {0}. See log file for details.", entity.Name));
                }
                else
                {
                    if (!entityMap.Populate(entity, entry.TagPath.Tag, value))
                        throw new ApplicationException(String.Format("Unable to update {0}. See log file for details.", entity.Name));
                }				
			}
		}