private void InitializeDocumentationTabPages()
        {
            var context = new PerformingDocumentationContext(this);

            _bannerComponentHost = new ChildComponentHost(this.Host, new BannerComponent(_worklistItem));
            _bannerComponentHost.StartComponent();

            _documentationTabContainer = new TabComponentContainer {
                ValidationStrategy = new AllComponentsValidationStrategy()
            };

            _orderDetailsComponent = new PerformingDocumentationOrderDetailsComponent(context, _worklistItem);
            _documentationTabContainer.Pages.Add(new TabPage("Order", _orderDetailsComponent));

            _ppsComponent = new PerformedProcedureComponent(_worklistItem, this);
            _ppsComponent.ProcedurePlanChanged += ((sender, e) => RefreshProcedurePlanSummary(e.ProcedurePlanDetail));
            _documentationTabContainer.Pages.Add(new TabPage("Exam", _ppsComponent));


            // create extension pages
            foreach (IPerformingDocumentationPageProvider pageProvider in (new PerformingDocumentationPageProviderExtensionPoint()).CreateExtensions())
            {
                _extensionPages.AddRange(pageProvider.GetPages(context));
            }

            foreach (var page in _extensionPages)
            {
                _documentationTabContainer.Pages.Add(new TabPage(page.Path, page.GetComponent()));
            }

            // For #7401.  Al the pages in this component are explicitly started so data for validation
            // iill be readily available when user complete the documentation.
            CollectionUtils.ForEach(_documentationTabContainer.Pages, p => p.LazyStart = false);

            _documentationHost = new ChildComponentHost(this.Host, _documentationTabContainer);
            _documentationHost.StartComponent();

            SetInitialDocumentationTabPage();
        }
 public EditorContext(PerformedProcedureComponent owner)
 {
     _owner = owner;
 }