public void Print() { Console.WriteLine("StudyData.Date: " + Date.ToStringNull()); Console.WriteLine("StudyData.InstanceUID: " + InstanceUID.ToStringNull()); Console.WriteLine("StudyData.Id: " + Id.ToStringNull()); Console.WriteLine("StudyData.accessionNumber: " + AccessionNumber.ToStringNull()); Console.WriteLine("StudyData.referringPhysiciansName: " + ReferringPhysiciansName.ToStringNull()); Console.WriteLine("StudyData.ModalitiesInStudy: " + ModalitiesInStudy); if (ModalitiesInStudy != null) { foreach (string m in ModalitiesInStudy) { Console.WriteLine("\t" + m); } } Console.WriteLine("StudyData.NumberOfRelatedSeries: " + NumberOfRelatedSeries); Console.WriteLine("StudyData.NumberOfRelatedInstances: " + NumberOfRelatedInstances); Console.WriteLine("StudyData.Description: " + Description.ToStringNull()); Console.WriteLine("StudyData.NameOfDoctorsReading: " + NameOfDoctorsReading); Console.WriteLine("StudyData.AdmittingDiagnosesDescription: " + AdmittingDiagnosesDescription.ToStringNull()); Console.WriteLine("StudyData.Age: " + Age.ToStringNull()); Console.WriteLine("StudyData.Size: " + Size.ToStringNull()); Console.WriteLine("StudyData.Weight: " + Weight.ToStringNull()); Console.WriteLine("StudyData.AdditionalPatientHistory: " + AdditionalPatientHistory.ToStringNull()); Console.WriteLine(); Patient.Print(); }
/// <summary> /// Validate the Content for this Order Details /// </summary> /// <param name="path">The path to this object as a string</param> /// <param name="messages">the validation messages, these may be added to within this method</param> public void Validate(string path, List <ValidationMessage> messages) { var vb = new ValidationBuilder(path, messages); if (vb.ArgumentRequiredCheck("Requester", Requester)) { Requester.Validate("Requester", messages); } if (RequesterOrderIdentifier != null) { RequesterOrderIdentifier.Validate(path, messages); } if (RequestedTestName != null) { RequestedTestName.Validate(path, messages); } if (AccessionNumber != null) { AccessionNumber.Validate(path, messages); } }
private void GetESignatureStatus() { if (this.CurrentSiteType == ReadingSiteType.consultation) { AccessionNumber acNum = new AccessionNumber(this.AccessionNumber); string localESigKey = UserContext.LocalSite.PrimarySiteStationNUmber + "^" + acNum.Type; if (UserContext.UserCredentials.UserHasESignatureStatus(localESigKey)) this.LocalEsigStatus = UserContext.UserCredentials.GetESignatureStatusAtSite(localESigKey); else { // retrieve the Esignature status from database this.LocalEsigStatus = DataSource.GetESignatureStatus(UserContext.LocalSite.PrimarySiteStationNUmber, this.AccessionNumber); // update to the list UserContext.UserCredentials.ESignatureStatuses.Add(localESigKey, this.LocalEsigStatus); } } }
private void GetESignatureStatus() { if (this.CurrentSiteType == ReadingSiteType.consultation) { this.EsigStatus = new PathologyElectronicSignatureNeedType() { Status = ESigNeedType.not_authorized, Message = "Consulting site cannot verify main report." }; return; } // first check to see if the user has already got the status for this type of report yet AccessionNumber acNum = new AccessionNumber(this.AccessionNumber); string eSigKey = this.SiteCode + "^" + acNum.Type; if (UserContext.UserCredentials.UserHasESignatureStatus(eSigKey)) this.EsigStatus = UserContext.UserCredentials.GetESignatureStatusAtSite(eSigKey); else { // retrieve the Esignature status from database this.EsigStatus = DataSource.GetESignatureStatus(this.SiteCode, this.AccessionNumber); // update to the list UserContext.UserCredentials.ESignatureStatuses.Add(eSigKey, this.EsigStatus); } // if the interpretation site is remote then it also need local esignature status if (UserContext.LocalSite.PrimarySiteStationNUmber != this.SiteCode) { string localESigKey = UserContext.LocalSite.PrimarySiteStationNUmber + "^" + acNum.Type; if (UserContext.UserCredentials.UserHasESignatureStatus(localESigKey)) this.LocalEsigStatus = UserContext.UserCredentials.GetESignatureStatusAtSite(localESigKey); else { // retrieve the Esignature status from database this.LocalEsigStatus = DataSource.GetESignatureStatus(UserContext.LocalSite.PrimarySiteStationNUmber, this.AccessionNumber); // update to the list UserContext.UserCredentials.ESignatureStatuses.Add(localESigKey, this.LocalEsigStatus); } } }
/// <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; }