public SupplementaryReportViewModel(IWorkListDataSource dataSource, string siteID, string accessionNumber, string caseURN, CaseConsultationList consultationList,
											bool isGlobalReadOnly = false, ReadingSiteType siteType = ReadingSiteType.interpretation)
        {
            this.DataSource = dataSource;

            // case info
            this.SiteID = siteID;
            this.AccessionNumber = accessionNumber;
            this.CaseURN = caseURN;
            this.ConsultationList = consultationList;
            this.CurrentSiteType = siteType;
            this.IsEditorReadOnly = isGlobalReadOnly;

            GetConsultationID();

            // retrieve all the supplementary reports for the case
            srModel = dataSource.GetSupplementalReports(this.CaseURN);

            ClearSRCommand = new RelayCommand(ClearSR, () => this.CanClearSR);
            AddNewSRCommand = new RelayCommand(AddNewSR, () => this.CanAddNewSR);
            UpdateSRCommand = new RelayCommand(UpdateSR, () => this.CanUpdateSR);
            VerifySRCommand = new RelayCommand(VerifySR, () => this.CanVerifySR);
            CompleteConsultationCommand = new RelayCommand(CompleteConsultation, () => this.CanCompleteConsultation);

            ClearSR();

            // retrieve the Esignature status at the case's primary site
            GetESignatureStatus();
        }
        /// <summary>
        /// Retrieve a list of supplementary report for a case
        /// </summary>
        /// <param name="caseURN">Case ID</param>
        /// <returns>list of supplementary reports for the case</returns>
        public SupplementaryReportModel GetSupplementalReports(string caseURN)
        {
            Log.Debug("Retrieving supplementary report...");

            SupplementaryReportModel srModel = new SupplementaryReportModel();
            if (string.IsNullOrWhiteSpace(caseURN))
            {
                Log.Error("Missing parameter: caseURN.");
                return srModel;
            }

            string URI = String.Format("pathology/case/supplementalreports/{0}", caseURN);
            IRestResponse response;
            try
            {
                response = ExecuteGet(URI, VixServiceTypes.Pathology);
                ValidateRestResponse(response);
                SupplementaryReportList supList = ResponseParser.ParseGetSupplementalReportList(response.Content);
                srModel.LoadSupplementReports(supList);
            }
            catch (MagVixFailureException vfe)
            {
                Log.Error("Unexpected response", vfe);
            }
            catch (Exception ex)
            {
                Log.Error("Could not complete request to retrieve supplementary reports.", ex);
            }

            return srModel;
        }