protected override ProcedureTypeGroupData Export(ProcedureTypeGroup entity, IReadContext context)
        {
            ProcedureTypeGroupData data = new ProcedureTypeGroupData();

            data.Name        = entity.Name;
            data.Class       = entity.GetClass().FullName;
            data.Description = entity.Description;

            data.ProcedureTypes = CollectionUtils.Map <ProcedureType, ProcedureTypeData>(
                entity.ProcedureTypes,
                delegate(ProcedureType pt)
            {
                ProcedureTypeData ptdata = new ProcedureTypeData();
                ptdata.Id = pt.Id;
                return(ptdata);
            });

            return(data);
        }
        protected override void Import(ProcedureTypeGroupData data, IUpdateContext context)
        {
            ProcedureTypeGroup group = LoadOrCreateProcedureTypeGroup(data.Name, data.Class, context);

            group.Description = data.Description;

            if (data.ProcedureTypes != null)
            {
                foreach (ProcedureTypeData s in data.ProcedureTypes)
                {
                    ProcedureTypeSearchCriteria where = new ProcedureTypeSearchCriteria();
                    where.Id.EqualTo(s.Id);
                    ProcedureType pt = CollectionUtils.FirstElement(context.GetBroker <IProcedureTypeBroker>().Find(where));
                    if (pt != null)
                    {
                        group.ProcedureTypes.Add(pt);
                    }
                }
            }
        }