public ExaminationReportPage(object data): this()
        {            
            mouseHook.MouseUp += new System.Windows.Forms.MouseEventHandler(mouseHook_MouseUp);
            //mouseHook.MouseMove += new System.Windows.Forms.MouseEventHandler(mouseHook_MouseMove);
            try { 
                this.person = data as Person;
                if (this.person == null)
                {
                    MessageBox.Show(this, "Please select a patient.");
                    this.Close();
                }
                else
                {                    
                    string dataFile = FindUserReportData(person.ArchiveFolder);
                    if (string.IsNullOrEmpty(dataFile))
                    {
                        dataFile = dataFolder + System.IO.Path.DirectorySeparatorChar + person.Code + ".dat";
                    }
                    //string dataFile = dataFolder + System.IO.Path.DirectorySeparatorChar + person.Code + ".dat";                    

                    if (File.Exists(dataFile))
                    {
                        try
                        {
                            this.shortFormReportModel = SerializeUtilities.Desrialize<ShortFormReport>(dataFile);
                        }
                        catch (Exception exec1) {                                                        
                        }                        
                                                                  
                        if (shortFormReportModel.DataSignImg != null)
                        {
                            this.dataSignImg.Source = ImageTools.GetBitmapImage(shortFormReportModel.DataSignImg);
                        }                                                             
                        
                    }
                    else
                    {                        
                        shortFormReportModel.DataUserCode = person.Code;                                                                        
                        bool defaultSign = Convert.ToBoolean(OperateIniFile.ReadIniData("Report", "Use Default Signature", "false", System.AppDomain.CurrentDomain.BaseDirectory + "Config.ini"));
                        if (defaultSign)
                        {
                            string imgFile = AppDomain.CurrentDomain.BaseDirectory + "/Signature/temp.jpg";
                            if (File.Exists(imgFile))
                            {
                                this.dataSignImg.Source = ImageTools.GetBitmapImage(imgFile);
                                //dataScreenShotImg.Source = GetBitmapImage(AppDomain.CurrentDomain.BaseDirectory + "/Images/BigIcon.png");
                            }
                        }
                    }
                    if ("en-US".Equals(App.local))
                    {
                        shortFormReportModel.DataScreenDate = DateTime.ParseExact("20" + person.Code.Substring(0, 6), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).ToString("MM/dd/yyyy");
                    }
                    else
                    {
                        shortFormReportModel.DataScreenDate = DateTime.ParseExact("20" + person.Code.Substring(0, 6), "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture).ToString("yyyy年MM月dd日");
                    }
                    shortFormReportModel.DataClientNum = person.ClientNumber;
                    shortFormReportModel.DataName = person.SurName;
                    shortFormReportModel.DataAge = person.Age + "";
                    shortFormReportModel.DataAddress = person.Address;
                    shortFormReportModel.DataHeight = person.Height;
                    shortFormReportModel.DataWeight = person.Weight;
                    shortFormReportModel.DataMobile = person.Mobile;
                    shortFormReportModel.DataEmail = person.Email;
                    shortFormReportModel.DataScreenLocation = person.ScreenVenue;
                    this.reportDataGrid.DataContext = this.shortFormReportModel;
                    //以下是添加处理操作员和医生的名字的选择项                    
                    User doctorUser = new User();
                    if (!string.IsNullOrEmpty(shortFormReportModel.DataDoctor))
                    {
                        doctorUser.Name = shortFormReportModel.DataDoctor;
                        doctorUser.License = shortFormReportModel.DataDoctorLicense;
                    }
                    else
                    {
                        if(!string.IsNullOrEmpty(this.person.DoctorName)){
                            doctorUser.Name = this.person.DoctorName;
                            doctorUser.License = this.person.DoctorLicense;
                            shortFormReportModel.DataDoctor = this.person.DoctorName;
                            shortFormReportModel.DataDoctorLicense = this.person.DoctorLicense;
                        }                                                
                    }
                    this.dataDoctor.ItemsSource = App.reportSettingModel.DoctorNames;
                    if(!string.IsNullOrEmpty(doctorUser.Name)){                        
                        for (int i = 0; i < App.reportSettingModel.DoctorNames.Count; i++)
			            {
                            var item=App.reportSettingModel.DoctorNames[i];
                            if (doctorUser.Name.Equals(item.Name) && (string.IsNullOrEmpty(doctorUser.License)==string.IsNullOrEmpty(item.License)||doctorUser.License==item.License))
                            {                                
                                this.dataDoctor.SelectedIndex = i;
                                break;
                            }
			            }
                        //如果没有找到匹配的用户
                        if (this.dataDoctor.SelectedIndex == -1)
                        {
                            App.reportSettingModel.DoctorNames.Add(doctorUser);
                            this.dataDoctor.SelectedIndex = App.reportSettingModel.DoctorNames.Count - 1;
                        }
                    }                                      

                    User techUser = new User();
                    if (!string.IsNullOrEmpty(shortFormReportModel.DataMeikTech))
                    {
                        techUser.Name = shortFormReportModel.DataMeikTech;
                        techUser.License = shortFormReportModel.DataTechLicense;
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(this.person.TechName))
                        {
                            techUser.Name = this.person.TechName;
                            techUser.License = this.person.TechLicense;
                            shortFormReportModel.DataMeikTech = this.person.TechName;
                            shortFormReportModel.DataTechLicense = this.person.TechLicense;
                        }
                    }
                    //this.dataMeikTech.ItemsSource = App.reportSettingModel.TechNames;
                    //if (!string.IsNullOrEmpty(techUser.Name))
                    //{
                    //    for (int i = 0; i < App.reportSettingModel.TechNames.Count; i++)
                    //    {
                    //        var item = App.reportSettingModel.TechNames[i];
                    //        if (techUser.Name.Equals(item.Name) && (string.IsNullOrEmpty(techUser.License) == string.IsNullOrEmpty(item.License) || techUser.License == item.License))
                    //        {
                    //            this.dataMeikTech.SelectedIndex = i;
                    //            break;
                    //        }
                    //    }
                    //    //如果没有找到匹配的用户
                    //    if (this.dataMeikTech.SelectedIndex == -1)
                    //    {
                    //        App.reportSettingModel.TechNames.Add(techUser);
                    //        this.dataMeikTech.SelectedIndex = App.reportSettingModel.TechNames.Count - 1;
                    //    }
                    //}
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message);
            }
        }
 public ScreenCapture(object data)
     : this()
 {
     this.selectedUser = data as Person;
 }
Exemple #3
0
        private void HandleFolder(string folderName,ref HashSet<Person> set)
        {
            //遍历指定文件夹下所有文件
            DirectoryInfo theFolder = new DirectoryInfo(folderName);             
            try
            {
                FileInfo[] fileInfo = theFolder.GetFiles();
                //遍历文件
                foreach (FileInfo NextFile in fileInfo)
                {                    
                    if (".ini".Equals(NextFile.Extension, StringComparison.OrdinalIgnoreCase))
                    {
                        try
                        {
                            #region 加載Person
                            Person person = new Person();
                            //person.ArchiveFolder = folderName;
                            person.ArchiveFolder = theFolder.FullName;                            
                            person.IniFilePath = NextFile.FullName;
                            person.CrdFilePath = person.IniFilePath.Replace(".ini",".crd");
                            person.Code = NextFile.Name.Substring(0, NextFile.Name.Length - 4);
                            person.Status = "N";
                            if (App.uploadedCodeList.Contains(person.Code))
                            {
                                person.Uploaded = Visibility.Visible.ToString();
                            }
                            else
                            {
                                person.Uploaded = Visibility.Collapsed.ToString();
                            }

                            string personalData = "Personal data";
                            string complaints = "Complaints";
                            string menses = "Menses";
                            string somatic = "Somatic";
                            string gynecologic = "Gynecologic";
                            string obstetric = "Obstetric";
                            string lactation = "Lactation";
                            string diseases = "Diseases";
                            string palpation = "Palpation";
                            string ultrasound = "Ultrasound";
                            string mammography = "Mammography";
                            string biopsy = "Biopsy";
                            string histology = "Histology";                            

                            //Personal Data
                            person.ClientNumber = OperateIniFile.ReadIniData(personalData, "clientnumber", "", NextFile.FullName);
                            person.SurName = OperateIniFile.ReadIniData(personalData, "surname", "", NextFile.FullName);
                            person.GivenName = OperateIniFile.ReadIniData(personalData, "given name", "", NextFile.FullName);
                            person.OtherName = OperateIniFile.ReadIniData(personalData, "other name", "", NextFile.FullName);
                            person.Address = OperateIniFile.ReadIniData(personalData, "address", "", NextFile.FullName);
                            person.Height = OperateIniFile.ReadIniData(personalData, "height", "", NextFile.FullName);
                            person.Weight = OperateIniFile.ReadIniData(personalData, "weight", "", NextFile.FullName);
                            person.Mobile = OperateIniFile.ReadIniData(personalData, "mobile", "", NextFile.FullName);
                            person.Email = OperateIniFile.ReadIniData(personalData, "email", "", NextFile.FullName);
                            person.ReportLanguage = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(personalData, "is english", "1", NextFile.FullName)));
                            
                            person.BirthDate = OperateIniFile.ReadIniData(personalData, "birth date", "", NextFile.FullName);
                            person.BirthMonth = OperateIniFile.ReadIniData(personalData, "birth month", "", NextFile.FullName);
                            person.BirthYear = OperateIniFile.ReadIniData(personalData, "birth year", "", NextFile.FullName);
                            person.RegDate = OperateIniFile.ReadIniData(personalData, "registration date", "", NextFile.FullName);
                            person.RegMonth = OperateIniFile.ReadIniData(personalData, "registration month", "", NextFile.FullName);
                            person.RegYear = OperateIniFile.ReadIniData(personalData, "registration year", "", NextFile.FullName);
                            person.Remark = OperateIniFile.ReadIniData(personalData, "remark", "", NextFile.FullName);
                            person.Remark = person.Remark.Replace(";;", "\r\n");

                            person.ScreenVenue = OperateIniFile.ReadIniData("Report", "Screen Venue", "", NextFile.FullName);
                            person.TechName = OperateIniFile.ReadIniData("Report", "Technician Name", "", NextFile.FullName);
                            person.TechLicense = OperateIniFile.ReadIniData("Report", "Technician License", "", NextFile.FullName);
                            person.PoorImages = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Report", "Poor Images", "0", NextFile.FullName)));
                            try
                            {
                                if (!string.IsNullOrEmpty(person.BirthYear))
                                {
                                    //person.BirthMonth = string.IsNullOrEmpty(person.BirthMonth) ? "1" : person.BirthMonth;
                                    //person.BirthDate = string.IsNullOrEmpty(person.BirthDate) ? "1" : person.BirthDate;
                                    //person.Birthday = person.BirthMonth + "/" + person.BirthDate + "/" + person.BirthYear;
                                    ////person.Regdate = registrationmonth + "/" + registrationdate + "/" + registrationyear;                                
                                    //if (!string.IsNullOrEmpty(person.Birthday))
                                    //{
                                    //    int m_Y1 = DateTime.ParseExact(person.Birthday, "M/d/yyyy", System.Globalization.CultureInfo.CurrentCulture).Year;
                                    //    int m_Y2 = DateTime.Now.Year;
                                    //    person.Age = m_Y2 - m_Y1;
                                    //}
                                    int m_Y1 = Convert.ToInt32(person.BirthYear);
                                    int m_Y2 = DateTime.Now.Year;
                                    person.Age = m_Y2 - m_Y1;
                                }
                                
                            }
                            catch(Exception){ }

                            try
                            {
                                //Family History
                                person.FamilyBreastCancer1 = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Family History", "FamilyBreastCancer1", "0", NextFile.FullName)));
                                person.FamilyBreastCancer2 = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Family History", "FamilyBreastCancer2", "0", NextFile.FullName)));
                                person.FamilyBreastCancer3 = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Family History", "FamilyBreastCancer3", "0", NextFile.FullName)));
                                person.FamilyUterineCancer1 = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Family History", "FamilyUterineCancer1", "0", NextFile.FullName)));
                                person.FamilyUterineCancer2 = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Family History", "FamilyUterineCancer2", "0", NextFile.FullName)));
                                person.FamilyUterineCancer3 = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Family History", "FamilyUterineCancer3", "0", NextFile.FullName)));
                                person.FamilyCervicalCancer1 = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Family History", "FamilyCervicalCancer1", "0", NextFile.FullName)));
                                person.FamilyCervicalCancer2 = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Family History", "FamilyCervicalCancer2", "0", NextFile.FullName)));
                                person.FamilyCervicalCancer3 = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Family History", "FamilyCervicalCancer3", "0", NextFile.FullName)));
                                person.FamilyOvarianCancer1 = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Family History", "FamilyOvarianCancer1", "0", NextFile.FullName)));
                                person.FamilyOvarianCancer2 = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Family History", "FamilyOvarianCancer2", "0", NextFile.FullName)));
                                person.FamilyOvarianCancer3 = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Family History", "FamilyOvarianCancer3", "0", NextFile.FullName)));                                

                            }
                            catch { }


                            try {
                                //Complaints
                                person.PalpableLumps = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "palpable lumps", "0", NextFile.FullName)));
                                if (person.PalpableLumps)
                                {
                                    person.LeftPosition = Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "left position", "0", NextFile.FullName));
                                    person.RightPosition = Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "right position", "0", NextFile.FullName));
                                }
                                                                                                
                                person.Pain = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "pain", "0", NextFile.FullName)));
                                if(person.Pain){
                                    person.Degree = Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "degree", "0", NextFile.FullName));
                                }

                                person.Colostrum = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "colostrum", "0", NextFile.FullName)));
                                person.SerousDischarge = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "serous discharge", "0", NextFile.FullName)));
                                person.BloodDischarge = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "blood discharge", "0", NextFile.FullName)));
                                person.Other = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "other", "0", NextFile.FullName)));
                                person.Pregnancy = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "pregnancy", "0", NextFile.FullName)));
                                person.Lactation = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "lactation", "0", NextFile.FullName)));
                                person.OtherDesc = OperateIniFile.ReadIniData(complaints, "other description", "", NextFile.FullName);
                                person.PregnancyTerm = OperateIniFile.ReadIniData(complaints, "pregnancy term", "", NextFile.FullName);
                                person.OtherDesc = person.OtherDesc.Replace(";;", "\r\n");                                
                                person.LactationTerm = OperateIniFile.ReadIniData(complaints, "lactation term", "", NextFile.FullName);

                                person.BreastImplants = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "BreastImplants", "0", NextFile.FullName)));
                                person.BreastImplantsLeft = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "BreastImplantsLeft", "0", NextFile.FullName)));
                                person.BreastImplantsRight = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "BreastImplantsRight", "0", NextFile.FullName)));
                                person.MaterialsGel = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "MaterialsGel", "0", NextFile.FullName)));
                                person.MaterialsFat = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "MaterialsFat", "0", NextFile.FullName)));
                                person.MaterialsOthers = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(complaints, "MaterialsOthers", "0", NextFile.FullName)));

                                person.BreastImplantsLeftYear = OperateIniFile.ReadIniData(complaints, "BreastImplantsLeftYear", "", NextFile.FullName);
                                person.BreastImplantsRightYear = OperateIniFile.ReadIniData(complaints, "BreastImplantsRightYear", "", NextFile.FullName);
                                
                            }
                            catch (Exception) { }

                            try {
                                person.DateLastMenstruation = OperateIniFile.ReadIniData(menses, "DateLastMenstruation", "", NextFile.FullName);                                
                                person.MenstrualCycleDisorder = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(menses, "menstrual cycle disorder", "0", NextFile.FullName)));
                                person.Postmenopause = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(menses, "postmenopause", "0", NextFile.FullName)));
                                person.HormonalContraceptives = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(menses, "hormonal contraceptives", "0", NextFile.FullName)));
                                person.PostmenopauseYear = OperateIniFile.ReadIniData(menses, "postmenopause year", "", NextFile.FullName);
                                person.MenstrualCycleDisorderDesc = OperateIniFile.ReadIniData(menses, "menstrual cycle disorder description", "", NextFile.FullName);
                                person.MenstrualCycleDisorderDesc = person.MenstrualCycleDisorderDesc.Replace(";;", "\r\n");
                                person.PostmenopauseDesc = OperateIniFile.ReadIniData(menses, "postmenopause description", "", NextFile.FullName);
                                person.PostmenopauseDesc = person.PostmenopauseDesc.Replace(";;", "\r\n");
                                person.HormonalContraceptivesBrandName = OperateIniFile.ReadIniData(menses, "hormonal contraceptives brand name", "", NextFile.FullName);
                                person.HormonalContraceptivesBrandName = person.HormonalContraceptivesBrandName.Replace(";;", "\r\n");
                                person.HormonalContraceptivesPeriod = OperateIniFile.ReadIniData(menses, "hormonal contraceptives period", "", NextFile.FullName);
                                person.HormonalContraceptivesPeriod = person.HormonalContraceptivesPeriod.Replace(";;", "\r\n");
                                person.MensesStatus = person.MenstrualCycleDisorder || person.Postmenopause || person.HormonalContraceptives ? true : false;
                            }
                            catch (Exception) { }

                            try { 
                                person.Adiposity = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(somatic, "adiposity", "0", NextFile.FullName)));
                                person.EssentialHypertension = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(somatic, "essential hypertension", "0", NextFile.FullName)));
                                person.Diabetes = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(somatic, "diabetes", "0", NextFile.FullName)));
                                person.ThyroidGlandDiseases = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(somatic, "thyroid gland diseases", "0", NextFile.FullName)));
                                person.SomaticOther = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(somatic, "other", "0", NextFile.FullName)));
                                person.EssentialHypertensionDesc = OperateIniFile.ReadIniData(somatic, "essential hypertension description", "", NextFile.FullName);
                                person.EssentialHypertensionDesc = person.EssentialHypertensionDesc.Replace(";;", "\r\n");
                                person.DiabetesDesc = OperateIniFile.ReadIniData(somatic, "diabetes description", "", NextFile.FullName);
                                person.DiabetesDesc = person.DiabetesDesc.Replace(";;", "\r\n");
                                person.ThyroidGlandDiseasesDesc = OperateIniFile.ReadIniData(somatic, "thyroid gland diseases description", "", NextFile.FullName);
                                person.ThyroidGlandDiseasesDesc = person.ThyroidGlandDiseasesDesc.Replace(";;", "\r\n");
                                person.SomaticOtherDesc = OperateIniFile.ReadIniData(somatic, "other description", "", NextFile.FullName);
                                person.SomaticOtherDesc = person.SomaticOtherDesc.Replace(";;", "\r\n");
                                person.SomaticStatus = person.Adiposity || person.EssentialHypertension || person.Diabetes || person.ThyroidGlandDiseases || person.SomaticOther ? true : false;
                            }
                            catch (Exception) { }

                            try
                            {
                                person.Infertility = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(gynecologic, "infertility", "0", NextFile.FullName)));
                                person.OvaryDiseases = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(gynecologic, "ovary diseases", "0", NextFile.FullName)));
                                person.OvaryCyst = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(gynecologic, "ovary cyst", "0", NextFile.FullName)));
                                person.OvaryCancer = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(gynecologic, "ovary cancer", "0", NextFile.FullName)));
                                person.OvaryEndometriosis = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(gynecologic, "ovary endometriosis", "0", NextFile.FullName)));
                                person.OvaryOther = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(gynecologic, "ovary other", "0", NextFile.FullName)));
                                person.UterusDiseases = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(gynecologic, "uterus diseases", "0", NextFile.FullName)));
                                person.UterusMyoma = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(gynecologic, "uterus myoma", "0", NextFile.FullName)));
                                person.UterusCancer = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(gynecologic, "uterus cancer", "0", NextFile.FullName)));
                                person.UterusEndometriosis = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(gynecologic, "uterus endometriosis", "0", NextFile.FullName)));
                                person.UterusOther = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(gynecologic, "uterus other", "0", NextFile.FullName)));
                                person.GynecologicOther = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(gynecologic, "other", "0", NextFile.FullName)));
                                person.InfertilityDesc = OperateIniFile.ReadIniData(gynecologic, "infertility-description", "", NextFile.FullName);
                                person.InfertilityDesc = person.InfertilityDesc.Replace(";;", "\r\n");
                                person.OvaryOtherDesc = OperateIniFile.ReadIniData(gynecologic, "ovary other description", "", NextFile.FullName);
                                person.OvaryOtherDesc = person.OvaryOtherDesc.Replace(";;", "\r\n");
                                person.UterusOtherDesc = OperateIniFile.ReadIniData(gynecologic, "uterus other description", "", NextFile.FullName);
                                person.UterusOtherDesc = person.UterusOtherDesc.Replace(";;", "\r\n");
                                person.GynecologicOtherDesc = OperateIniFile.ReadIniData(gynecologic, "other description", "", NextFile.FullName);
                                person.GynecologicOtherDesc = person.GynecologicOtherDesc.Replace(";;", "\r\n");
                                person.GynecologicStatus = person.Infertility || person.OvaryDiseases || person.OvaryCyst || person.OvaryCancer 
                                    || person.OvaryEndometriosis || person.OvaryOther || person.UterusDiseases || person.UterusMyoma
                                    || person.UterusCancer || person.UterusEndometriosis || person.UterusOther || person.GynecologicOther ? true : false;
                            }
                            catch (Exception) { }

                            try
                            {
                                person.Abortions = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(obstetric, "abortions", "0", NextFile.FullName)));
                                person.Births = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(obstetric, "births", "0", NextFile.FullName)));
                                person.AbortionsNumber = OperateIniFile.ReadIniData(obstetric, "abortions number", "", NextFile.FullName);
                                person.BirthsNumber = OperateIniFile.ReadIniData(obstetric, "births number", "", NextFile.FullName);
                                person.ObstetricStatus = person.Abortions || person.Births ? true : false;
                        
                            }
                            catch(Exception){ }

                            try { 
                                person.LactationTill1Month = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(lactation, "lactation till 1 month", "0", NextFile.FullName)));
                                person.LactationTill1Year = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(lactation, "lactation till 1 year", "0", NextFile.FullName)));
                                person.LactationOver1Year = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(lactation, "lactation over 1 year", "0", NextFile.FullName)));
                            }
                            catch (Exception) { }

                            try
                            {
                                person.Trauma = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(diseases, "trauma", "0", NextFile.FullName)));
                                person.Mastitis = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(diseases, "mastitis", "0", NextFile.FullName)));
                                person.FibrousCysticMastopathy = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(diseases, "fibrous- cystic mastopathy", "0", NextFile.FullName)));
                                person.Cysts = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(diseases, "cysts", "0", NextFile.FullName)));
                                person.Cancer = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(diseases, "cancer", "0", NextFile.FullName)));
                                person.DiseasesOther = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(diseases, "other", "0", NextFile.FullName)));
                                person.TraumaDesc = OperateIniFile.ReadIniData(diseases, "trauma description", "", NextFile.FullName);
                                person.TraumaDesc = person.TraumaDesc.Replace(";;", "\r\n");
                                person.MastitisDesc = OperateIniFile.ReadIniData(diseases, "mastitis description", "", NextFile.FullName);
                                person.MastitisDesc = person.MastitisDesc.Replace(";;", "\r\n");
                                person.FibrousCysticMastopathyDesc = OperateIniFile.ReadIniData(diseases, "fibrous- cystic mastopathy description", "", NextFile.FullName);
                                person.FibrousCysticMastopathyDesc = person.FibrousCysticMastopathyDesc.Replace(";;", "\r\n");
                                person.CystsDesc = OperateIniFile.ReadIniData(diseases, "cysts descriptuin", "", NextFile.FullName);
                                person.CystsDesc = person.CystsDesc.Replace(";;", "\r\n");
                                person.CancerDesc = OperateIniFile.ReadIniData(diseases, "cancer description", "", NextFile.FullName);
                                person.CancerDesc = person.CancerDesc.Replace(";;", "\r\n");
                                person.DiseasesOtherDesc = OperateIniFile.ReadIniData(diseases, "other description", "", NextFile.FullName);
                                person.DiseasesOtherDesc = person.DiseasesOtherDesc.Replace(";;", "\r\n");
                                person.DiseasesStatus = person.Trauma || person.Mastitis || person.FibrousCysticMastopathy || person.Cysts || person.Cancer || person.DiseasesOther ? true : false;
                            }
                            catch (Exception) { }

                            try {

                                person.Palpation = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(palpation, "palpation", "0", NextFile.FullName)));
                                person.PalationYear = OperateIniFile.ReadIniData(palpation, "palpation year", "", NextFile.FullName);                                

                                person.PalpationDiffuse = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(palpation, "diffuse", "0", NextFile.FullName)));
                                person.PalpationFocal = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(palpation, "focal", "0", NextFile.FullName)));
                                person.PalpationDesc = OperateIniFile.ReadIniData(palpation, "description", "", NextFile.FullName);
                                person.PalpationDesc = person.PalpationDesc.Replace(";;", "\r\n");
                                person.PalpationStatus = person.PalpationDiffuse || person.PalpationFocal ? true : false;
                                //person.PalpationStatus = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(palpation, "palpation status", "0", NextFile.FullName)));
                            }
                            catch (Exception) { }

                            try
                            {
                                person.Ultrasound = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(ultrasound, "ultrasound", "0", NextFile.FullName)));
                                person.UltrasoundYear = OperateIniFile.ReadIniData(ultrasound, "ultrasound year", "", NextFile.FullName);                                
                                person.UltrasoundDiffuse = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(ultrasound, "diffuse", "0", NextFile.FullName)));
                                person.UltrasoundFocal = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(ultrasound, "focal", "0", NextFile.FullName)));
                                person.UltrasoundnDesc = OperateIniFile.ReadIniData(ultrasound, "description", "", NextFile.FullName);
                                person.UltrasoundnDesc = person.UltrasoundnDesc.Replace(";;", "\r\n");
                                person.UltrasoundStatus = person.UltrasoundDiffuse || person.UltrasoundFocal ? true : false;
                                //person.UltrasoundStatus = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(ultrasound, "ultrasound status", "0", NextFile.FullName)));
                            }
                            catch (Exception) { }

                            try
                            {
                                person.Mammography = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(mammography, "mammography", "0", NextFile.FullName)));
                                person.MammographyYear = OperateIniFile.ReadIniData(mammography, "mammography year", "", NextFile.FullName);  
                                person.MammographyDiffuse = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(mammography, "diffuse", "0", NextFile.FullName)));
                                person.MammographyFocal = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(mammography, "focal", "0", NextFile.FullName)));
                                person.MammographyDesc = OperateIniFile.ReadIniData(mammography, "description", "", NextFile.FullName);
                                person.MammographyDesc = person.MammographyDesc.Replace(";;", "\r\n");
                                person.MammographyStatus = person.MammographyDiffuse || person.MammographyFocal ? true : false;
                                //person.MammographyStatus = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(mammography, "mammography status", "0", NextFile.FullName)));
                            }
                            catch (Exception) { }

                            try
                            {
                                person.Biopsy = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(biopsy, "biopsy", "0", NextFile.FullName)));
                                person.BiopsyYear = OperateIniFile.ReadIniData(biopsy, "biopsy year", "", NextFile.FullName); 
                                person.BiopsyDiffuse = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(biopsy, "diffuse", "0", NextFile.FullName)));
                                person.BiopsyFocal = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(biopsy, "focal", "0", NextFile.FullName)));
                                person.BiopsyCancer = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(biopsy, "cancer", "0", NextFile.FullName)));
                                person.BiopsyProliferation = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(biopsy, "proliferation", "0", NextFile.FullName)));
                                person.BiopsyDysplasia = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(biopsy, "dysplasia", "0", NextFile.FullName)));
                                person.BiopsyIntraductalPapilloma = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(biopsy, "intraductal papilloma", "0", NextFile.FullName)));
                                person.BiopsyFibroadenoma = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(biopsy, "fibroadenoma", "0", NextFile.FullName)));
                                person.BiopsyOther = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(biopsy, "other", "0", NextFile.FullName)));
                                person.BiopsyOtherDesc = OperateIniFile.ReadIniData(biopsy, "other description", "", NextFile.FullName);
                                person.BiopsyOtherDesc = person.BiopsyOtherDesc.Replace(";;", "\r\n");
                                person.BiopsyStatus = person.BiopsyDiffuse || person.BiopsyFocal || person.BiopsyCancer || person.BiopsyProliferation
                                    || person.BiopsyDysplasia || person.BiopsyIntraductalPapilloma || person.BiopsyFibroadenoma || person.BiopsyOther ? true : false;
                                //person.BiopsyStatus = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData(biopsy, "biopsy status", "0", NextFile.FullName)));
                            }
                            catch (Exception) { }

                            try
                            {
                                person.RedSwollen = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "red swollen", "0", NextFile.FullName)));
                                person.Palpable = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "palpable", "0", NextFile.FullName)));
                                person.Serous = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "serous discharge", "0", NextFile.FullName)));
                                person.Wounds = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "wounds", "0", NextFile.FullName)));
                                person.Scars = Convert.ToBoolean(Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "scars", "0", NextFile.FullName)));
                                person.RedSwollenLeft = Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "red swollen left segment", "0", NextFile.FullName));
                                person.RedSwollenRight = Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "red swollen right segment", "0", NextFile.FullName));

                                person.PalpableLeft = Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "palpable left segment", "0", NextFile.FullName));
                                person.PalpableRight = Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "palpable right segment", "0", NextFile.FullName));

                                person.SerousLeft = Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "serous left segment", "0", NextFile.FullName));
                                person.SerousRight = Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "serous right segment", "0", NextFile.FullName));

                                person.WoundsLeft = Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "wounds left segment", "0", NextFile.FullName));
                                person.WoundsRight = Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "wounds right segment", "0", NextFile.FullName));

                                person.ScarsLeft = Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "scars left segment", "0", NextFile.FullName));
                                person.ScarsRight = Convert.ToInt32(OperateIniFile.ReadIniData("Visual", "scars right segment", "0", NextFile.FullName));
                            }
                            catch { }
                            //查詢用戶當前檢測進度狀態
                            bool hasCrdFile = false;
                            bool hasDataFile = false;
                            foreach (FileInfo temp in fileInfo)
                            {
                                if (".crd".Equals(temp.Extension, StringComparison.OrdinalIgnoreCase))
                                {
                                    hasCrdFile = true;
                                }
                                if (".dat".Equals(temp.Extension, StringComparison.OrdinalIgnoreCase))
                                {
                                    hasDataFile = true;
                                }
                            }
                            if (hasCrdFile) person.Status = "S";
                            if (hasDataFile) person.Status = "R";
                            if (person.PoorImages) person.Status = "Z";
                            set.Add(person);
                            #endregion
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(this, string.Format(App.Current.FindResource("Message_32").ToString() + ex.Message, NextFile.FullName));
                        }
                    }
                }
            }
            catch (Exception) { }

            //Handle folder
            DirectoryInfo[] dirInfo = theFolder.GetDirectories();            
            foreach (DirectoryInfo subFolder in dirInfo)
            {
                HandleFolder(subFolder.FullName, ref set);
            }
        }
        public SummaryReportPage(object data): this()
        {
            try { 
                this.person = data as Person;
                if (this.person == null)
                {
                    MessageBox.Show(this, App.Current.FindResource("Message_8").ToString());
                    this.Close();
                }
                else
                {
                    string dataFile = FindUserReportData(person.ArchiveFolder);
                    if (string.IsNullOrEmpty(dataFile))
                    {
                        dataFile = dataFolder + System.IO.Path.DirectorySeparatorChar + person.Code + ".dat";
                    }
                    if ("en-US".Equals(App.local))
                    {
                        dataScreenDate.FormatString = "MMMM d, yyyy";
                        dataSignDate.FormatString = "MMMM d, yyyy";                        
                    }
                    else
                    {
                        dataScreenDate.FormatString = "yyyy年MM月dd日";
                        dataSignDate.FormatString = "yyyy年MM月dd日";
                    }
                    //string dataFile = dataFolder + System.IO.Path.DirectorySeparatorChar + person.Code + ".dat";
                    if(File.Exists(dataFile)){
                        ////序列化xaml
                        //using (FileStream fs = new FileStream(dataFolder+"/"+person.Code+".dat", FileMode.Open))
                        //{                        
                        //    var scrollViewer = XamlReader.Load(fs) as ScrollViewer;                        
                        //    this.reportPage = scrollViewer;
                        //}
                        this.shortFormReportModel=SerializeUtilities.Desrialize<ShortFormReport>(dataFile);
                                        
                        if (shortFormReportModel.DataScreenShotImg != null)
                        {
                            this.dataScreenShotImg.Source = ImageTools.GetBitmapImage(shortFormReportModel.DataScreenShotImg);
                        }
                        if (shortFormReportModel.DataSignImg != null)
                        {
                            this.dataSignImg.Source = ImageTools.GetBitmapImage(shortFormReportModel.DataSignImg);
                        }                        

                    }
                    else
                    {
                        shortFormReportModel.DataUserCode = person.Code;
                        shortFormReportModel.DataName = person.SurName;
                        shortFormReportModel.DataAge = person.Age + "";
                        shortFormReportModel.DataScreenDate = DateTime.Parse(person.RegMonth + "/" + person.RegDate + "/" + person.RegYear).ToLongDateString();
                        shortFormReportModel.DataSignDate = DateTime.Today.ToLongDateString();
                        bool defaultSign = Convert.ToBoolean(OperateIniFile.ReadIniData("Report", "Use Default Signature", "false", System.AppDomain.CurrentDomain.BaseDirectory + "Config.ini"));
                        if (defaultSign)
                        {
                            string imgFile = AppDomain.CurrentDomain.BaseDirectory + "/Signature/temp.jpg";
                            if (File.Exists(imgFile))
                            {
                                dataSignImg.Source = ImageTools.GetBitmapImage(imgFile);
                                //dataScreenShotImg.Source = GetBitmapImage(AppDomain.CurrentDomain.BaseDirectory + "/Images/BigIcon.png");
                            }
                        }
                    
                    }
                    this.reportDataGrid.DataContext = this.shortFormReportModel;                    
                    //以下是添加处理操作员和医生的名字的选择项                    
                    User doctorUser = new User();
                    if (!string.IsNullOrEmpty(shortFormReportModel.DataDoctor))
                    {
                        doctorUser.Name = shortFormReportModel.DataDoctor;
                        doctorUser.License = shortFormReportModel.DataDoctorLicense;
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(this.person.DoctorName))
                        {
                            doctorUser.Name = this.person.DoctorName;
                            doctorUser.License = this.person.DoctorLicense;
                            shortFormReportModel.DataDoctor = this.person.DoctorName;
                            shortFormReportModel.DataDoctorLicense = this.person.DoctorLicense;
                        }
                    }
                    this.dataDoctor.ItemsSource = App.reportSettingModel.DoctorNames;
                    if (!string.IsNullOrEmpty(doctorUser.Name))
                    {
                        for (int i = 0; i < App.reportSettingModel.DoctorNames.Count; i++)
                        {
                            var item = App.reportSettingModel.DoctorNames[i];
                            if (doctorUser.Name.Equals(item.Name) && (string.IsNullOrEmpty(doctorUser.License) == string.IsNullOrEmpty(item.License) || doctorUser.License == item.License))
                            {
                                this.dataDoctor.SelectedIndex = i;
                                break;
                            }
                        }
                        //如果没有找到匹配的用户
                        if (this.dataDoctor.SelectedIndex == -1)
                        {
                            App.reportSettingModel.DoctorNames.Add(doctorUser);
                            this.dataDoctor.SelectedIndex = App.reportSettingModel.DoctorNames.Count - 1;
                        }
                    }

                    User techUser = new User();
                    if (!string.IsNullOrEmpty(shortFormReportModel.DataMeikTech))
                    {
                        techUser.Name = shortFormReportModel.DataMeikTech;
                        techUser.License = shortFormReportModel.DataTechLicense;
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(this.person.TechName))
                        {
                            techUser.Name = this.person.TechName;
                            techUser.License = this.person.TechLicense;
                            shortFormReportModel.DataMeikTech = this.person.TechName;
                            shortFormReportModel.DataTechLicense = this.person.TechLicense;
                        }
                    }
                    this.dataMeikTech.ItemsSource = App.reportSettingModel.TechNames;
                    if (!string.IsNullOrEmpty(techUser.Name))
                    {
                        for (int i = 0; i < App.reportSettingModel.TechNames.Count; i++)
                        {
                            var item = App.reportSettingModel.TechNames[i];
                            if (techUser.Name.Equals(item.Name) && (string.IsNullOrEmpty(techUser.License) == string.IsNullOrEmpty(item.License) || techUser.License == item.License))
                            {
                                this.dataMeikTech.SelectedIndex = i;
                                break;
                            }
                        }
                        //如果没有找到匹配的用户
                        if (this.dataMeikTech.SelectedIndex == -1)
                        {
                            App.reportSettingModel.TechNames.Add(techUser);
                            this.dataMeikTech.SelectedIndex = App.reportSettingModel.TechNames.Count - 1;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(this, ex.Message);
            }
            
        }