コード例 #1
0
        public string GetReportFieldData(string fieldNumber, string caseURN)
        {
            Log.Debug("Retrieving report field data...");

            string Result = string.Empty;

            if (string.IsNullOrWhiteSpace(fieldNumber))
            {
                Log.Error("Missing report field number.");
                return Result;
            }

            if (string.IsNullOrWhiteSpace(caseURN))
            {
                Log.Error("Missing case URN");
                return Result;
            }

            List<string> field = new List<string>();
            field.Add(fieldNumber);

            string URI = String.Format("pathology/case/template/{0}", caseURN);
            IRestResponse response;
            try
            {
                PathologyCaseTemplateInputFieldsType fieldList = new PathologyCaseTemplateInputFieldsType(field);
                string xml = ResponseParser.SerializeToXml<PathologyCaseTemplateInputFieldsType>(fieldList);
                response = ExecutePost(URI, VixServiceTypes.Pathology, xml);
                ValidateRestResponse(response);
                PathologyCaseTemplateType rawRep = ResponseParser.ParseGetReport(response.Content);

                if ((rawRep != null) && (rawRep.Fields != null) && (rawRep.Fields.Count > 0))
                    Result = rawRep.Fields[0].Content;
            }
            catch (MagResponseParsingFailureException rpf)
            {
                Log.Error("Failed to parse report field.", rpf);
            }
            catch (MagVixFailureException vfe)
            {
                Log.Error("Unexpected response.", vfe);
            }
            catch (Exception ex)
            {
                Log.Error("Could not complete request to retrieve report field data.", ex);
            }

            return Result;
        }
コード例 #2
0
        /// <summary>
        /// Retrieve report data for a case
        /// </summary>
        /// <param name="item">Case item</param>
        /// <returns>Report data for the case in question</returns>
        public Report GetReport(CaseListItem item)
        {
            Log.Debug("Retrieving report data...");

            // Always return a valid object for binding
            Report rep = new Report();

            if (item == null)
            {
                Log.Error("Missing parameter: caselistitem.");
                return rep;
            }

            // first we need to get the report template based on the type indicate in the accession number
            AccessionNumber accNum = new AccessionNumber(item.AccessionNumber);
            VixReportTemplateObject templateObj = GetReportTemplate(item.SiteCode, accNum.Type);

            // in case there is an error in the tranmission
            if (templateObj.TemplateXML == string.Empty)
            {
                Log.Error("Failed to get template.");
                return rep;
            }

            // retrieve a list of fields to grab data from the template
            rep.ReportTemplate = templateObj.GetReportTemplate();
            //List<string> fields = rep.GetFieldList();
            List<string> fields = rep.GetAllFieldList();

            string URI = String.Format("pathology/case/template/{0}", item.CaseURN);
            IRestResponse response;
            try
            {
                PathologyCaseTemplateInputFieldsType fieldList = new PathologyCaseTemplateInputFieldsType(fields);
                string xml = ResponseParser.SerializeToXml<PathologyCaseTemplateInputFieldsType>(fieldList);
                response = ExecutePost(URI, VixServiceTypes.Pathology, xml);
                ValidateRestResponse(response);
                PathologyCaseTemplateType rawRep = ResponseParser.ParseGetReport(response.Content);
                rep.LoadReportData(rawRep);
            }
            catch (MagResponseParsingFailureException rpf)
            {
                Log.Error("Failed to parse report fields.", rpf);
            }
            catch (MagVixFailureException vfe)
            {
                Log.Error("Unexpected response.", vfe);
            }
            catch (Exception ex)
            {
                Log.Error("Could not complete request to retrieve report data.", ex);
            }

            return rep;
        }