diff --git a/PEIS/Entity/DictHazardTypecs.cs b/PEIS/Entity/DictHazardTypecs.cs
index 89b2140..7ae8b91 100644
--- a/PEIS/Entity/DictHazardTypecs.cs
+++ b/PEIS/Entity/DictHazardTypecs.cs
@@ -38,5 +38,18 @@ namespace PEIS.Entity
         public string Describe { get; set; }
 
 
+
+        #region Other
+
+        [RefFlag(true)]
+        public int total { get; set; }
+
+        [RefFlag(true)]
+        public int sign { get; set; }
+
+        [RefFlag(true)]
+        public double percent { get; set; }
+
+        #endregion
     }
 }
diff --git a/PEIS/Entity/Hospital.cs b/PEIS/Entity/Hospital.cs
index 804ce97..a5627c4 100644
--- a/PEIS/Entity/Hospital.cs
+++ b/PEIS/Entity/Hospital.cs
@@ -12,5 +12,7 @@ namespace PEIS.Entity
         public String Description { get; set; }
         public String Tel { get; set; }
         public String DoctCode { get; set; }
+        public String DoctName { get; set; }
+
     }
 }
\ No newline at end of file
diff --git a/PEIS/PEIS.csproj b/PEIS/PEIS.csproj
index 8ab1858..a7b2047 100644
--- a/PEIS/PEIS.csproj
+++ b/PEIS/PEIS.csproj
@@ -747,7 +747,12 @@
       Settings.settings
       True
     
-    
+    
+      Always
+    
+    
+      Always
+    
     
       Always
     
diff --git a/PEIS/ReportFiles/CAPReport.frx b/PEIS/ReportFiles/CAPReport.frx
index d328f2e..6379d70 100644
--- a/PEIS/ReportFiles/CAPReport.frx
+++ b/PEIS/ReportFiles/CAPReport.frx
@@ -1,5 +1,5 @@
 
-
+
   using System;
 using System.Collections;
 using System.Collections.Generic;
@@ -585,10 +585,10 @@ namespace FastReport
       
       
     
-    
-      
+    
+      
     
-    
+    
       
     
   
@@ -602,8 +602,8 @@ namespace FastReport
       
       
     
-    
-    
+    
+    
       
       
       
@@ -620,7 +620,7 @@ namespace FastReport
       
       
     
-    
+    
       
     
   
diff --git a/PEIS/ReportFiles/CATReport.frx b/PEIS/ReportFiles/CATReport.frx
new file mode 100644
index 0000000..eaf4fb2
--- /dev/null
+++ b/PEIS/ReportFiles/CATReport.frx
@@ -0,0 +1,187 @@
+
+
+  using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Windows.Forms;
+using System.Drawing;
+using System.Data;
+using FastReport;
+using System.Linq;
+using FastReport.Data;
+using FastReport.Dialog;
+using FastReport.Barcode;
+using FastReport.Table;
+using FastReport.Utils;
+
+namespace FastReport
+{
+  public class ReportScript
+  {
+    
+  }
+}
+
+  
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+  
+  
+    
+      
+      
+      
+      
+      
+      
+      
+    
+    
+  
+  
+    
+      
+      
+    
+  
+  
+    
+      
+      
+      
+      
+      
+      
+    
+    
+      
+      
+        
+      
+      
+        
+        
+      
+    
+    
+      
+        
+        
+        
+        
+          
+          
+          
+        
+      
+      
+        
+        
+          
+          
+          
+          
+            
+            
+            
+          
+        
+      
+      
+        
+        
+        
+        
+        
+        
+      
+    
+    
+      
+        
+        
+        
+        
+        
+          
+          
+          
+          
+        
+      
+      
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+          
+          
+          
+          
+          
+            
+            
+            
+            
+          
+        
+      
+    
+    
+      
+        
+        
+        
+        
+        
+          
+          
+          
+          
+        
+      
+      
+        
+          
+          
+          
+          
+          
+            
+            
+            
+            
+          
+        
+      
+      
+        
+        
+        
+        
+      
+    
+  
+
diff --git a/PEIS/Utils/ReportHelper.cs b/PEIS/Utils/ReportHelper.cs
index 6ed1c59..050bec7 100644
--- a/PEIS/Utils/ReportHelper.cs
+++ b/PEIS/Utils/ReportHelper.cs
@@ -437,6 +437,8 @@ namespace PEIS.Utils
             var lstLis = new ReportModel().GetLisResult(eid);
             var lstPacs = new ReportModel().GetPacsResult(eid);
             var lstPacsPhotos = new ReportModel().GetPacsPhoto(eid);
+            // 第三方报告
+            var lstExts = new ReportModel().GetReportExt(eid);
 
             // 登记信息
             rpt.SetParameterValue("PatientName", patient.Name);
@@ -486,7 +488,7 @@ namespace PEIS.Utils
             //LIS
             SetDataSource(ref rpt, lstLis, "L", "LIS");
             // PacsImage
-            SetDataSource(ref rpt, lstPacsPhotos, "I", "PACSImage");
+            SetDataSource(ref rpt, lstPacsPhotos.Concat(lstExts.Where(w => w.ReportImg != null).Select(s => new Entity.Report { ReportImage = s.ReportImg })), "I", "PACSImage");
             rpt.Prepare(); //准备
             return rpt;
         }
@@ -506,6 +508,7 @@ namespace PEIS.Utils
             var lstChildren = new ReportModel().GetFastResult(eid);
             var lstSummary = new TotalModel().GetSummary(eid);
             var lstConclusion = new ReportModel().GetExamConclusions(eid);
+
             var dict = new Dictionary();
             lstChildren.ForEach(item =>
             {
diff --git a/PEIS/View/EReport/TeamReportForm.cs b/PEIS/View/EReport/TeamReportForm.cs
index 1c1a6f7..450b314 100644
--- a/PEIS/View/EReport/TeamReportForm.cs
+++ b/PEIS/View/EReport/TeamReportForm.cs
@@ -74,108 +74,15 @@ namespace PEIS.View.EReport
             OnGetOrgConclusions(_regInfo.ID);
             OnGetOrgCon(_regInfo.ID);
 
-            tReport = new FastReport.Report();   //实例化一个Report报表
-            try
+            if (_regInfo.IsOccupational)
             {
-                var reportFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ReportFiles", "TReport.frx");
-                //var reportFile = "D:/Code/project/PEIS/TReport.frx";
-                tReport.Load(reportFile);
-                tReport.Preview = ReportPreview; //设置报表的Preview控件
-            
-                #region// 注入数据源
-            
-                // 登记信息
-                tReport.SetParameterValue("OrgName", _regInfo.Name);
-                tReport.SetParameterValue("OrgEId", _regInfo.ID);
-                tReport.SetParameterValue("ExamDate", _regInfo.ExamDate?.ToShortDateString());
-                tReport.SetParameterValue("Contactor", _regInfo.Contactor1);
-                tReport.SetParameterValue("Tel", _regInfo.Tel1);
-                tReport.SetParameterValue("Address", _regInfo.Address);
-                tReport.SetParameterValue("HospitalName", Global._hospital.Name);
-                tReport.SetParameterValue("SumPerson", _sumInfo?.SumPerson);
-                tReport.SetParameterValue("SumExamPerson",_sumInfo?.SumExamPerson);
-                tReport.SetParameterValue("ExamPercent", _sumInfo?.ExamPercent);
-                tReport.SetParameterValue("SumMale", _sumInfo?.SumMale);
-                tReport.SetParameterValue("SumFemale",_sumInfo?.SumFemale);
-                tReport.SetParameterValue("MaxAge", _sumInfo?.MaxAge);
-                tReport.SetParameterValue("MinAge", _sumInfo?.MinAge);
-
-                //收费列表
-                tReport.RegisterData(_lstOrgFeeItems, "F");
-                DataBand feeItems = tReport.Report.FindObject("FeeItems") as DataBand;
-                feeItems.DataSource = tReport.Report.GetDataSource("F");
-                tReport.GetDataSource("F").Enabled = true;
-
-                //异常结果
-                tReport.RegisterData(_lstConclusions.Take(10), "C");
-                DataBand conclusion = tReport.Report.FindObject("Conclusion") as DataBand;
-                conclusion.DataSource = tReport.Report.GetDataSource("C");
-                tReport.GetDataSource("C").Enabled = true;
-
-                //男性异常结果
-                tReport.RegisterData(_lstConclusions.OrderByDescending(o => o.SumMalePercent).ToList().Take(10), "B");
-                DataBand SumMale = tReport.Report.FindObject("SumMale") as DataBand;
-                SumMale.DataSource = tReport.Report.GetDataSource("B");
-                tReport.GetDataSource("B").Enabled = true;
-
-                //女性异常结果
-                tReport.RegisterData(_lstConclusions.OrderByDescending(o => o.SumFemalePercent).ToList().Take(10), "G");
-                DataBand SumFemale = tReport.Report.FindObject("SumFemale") as DataBand;
-                SumFemale.DataSource = tReport.Report.GetDataSource("G");
-                tReport.GetDataSource("G").Enabled = true;
-
-                tReport.RegisterData(_lstCon, "S");
-                DataBand S = tReport.Report.FindObject("StatisticsDetail") as DataBand;
-                S.DataSource = tReport.Report.GetDataSource("S");
-                tReport.GetDataSource("S").Enabled = true;
-
-
-                var newData = new List();
-                foreach (var item in _lstConclusions.Take(10))
-                {
-                    newData.Add(new ExamConclusion()
-                    {
-                        Conclusion = item.Conclusion,
-                        ResultFlag = "未检出",
-                        SumWarn = item.SumPerson - item.SumWarn,
-                        Suggestion = item.Suggestion
-                    });
-                }
-
-
-                var index = 0;
-                foreach (var group in _lstConclusions.Take(10).Concat(newData).GroupBy(g => new { g.Conclusion, g.Suggestion }).ToList())
-                {
-                    index++;
-                    tReport.RegisterData(group, "Z" + index);
-                }
-
-
-                if (index != 10)
-                {
-                    List List = new List
-                    {
-                        new ExamConclusion() { Conclusion = "填充", SumWarn = 0, ResultFlag = "" },
-                        new ExamConclusion() { Conclusion = "填充", SumWarn = 0, ResultFlag = "" }
-                    };
-
-                    for (int i = index + 1; i < 11; i++)
-                    {
-                        tReport.RegisterData(List, "Z" + i);
-                    }
-                }
-
-
-                #endregion
-
-                tReport.Prepare();   //准备
-                tReport.ShowPrepared();  //显示
+                OccupationalReport();
             }
-            catch (Exception ex)
+            else
             {
-                Global.Msg("Info", ex.Message);
-                Console.WriteLine(ex.Message);
+                GeneralReport();
             }
+            
         }
 
         private void RefreshBtn_Click(object sender, EventArgs e)
@@ -351,6 +258,197 @@ namespace PEIS.View.EReport
         }
         #endregion
 
+        #region 报告
+
+        private void OccupationalReport()
+        {
+            tReport = new FastReport.Report();   //实例化一个Report报表
+
+            try
+            {
+                var reportFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ReportFiles", "CATReport.frx");
+                //var reportFile = "D:/Code/project/PEIS/TReport.frx";
+                tReport.Load(reportFile);
+                tReport.Preview = ReportPreview; //设置报表的Preview控件
+
+                // 注入数据
+                tReport.SetParameterValue("OrgName", _regInfo.Name);
+                tReport.SetParameterValue("HospitalName", Global._hospital.Name);
+                tReport.SetParameterValue("Tel", Global._hospital.Tel);
+                tReport.SetParameterValue("Contacter", Global._hospital.DoctName);
+                tReport.SetParameterValue("Address", Global._hospital.Description);
+                tReport.SetParameterValue("Postcode", Global._hospital.Code);
+                tReport.SetParameterValue("JobStatus", "在岗期间职业健康体检");
+
+                //人员数据
+                var OrgPatient = DAOHelp.GetDataBySQL($@"SELECT ID,Name,HazardFactors FROM Enrollment_Patient WHERE OEID = {_regInfo.ID}");
+
+                // 接害因素
+                var HazardFactors = DAOHelp.GetDataBySQL($@"SELECT STUFF((SELECT '; ' + HazardFactors FROM Enrollment_OrgGroup WHERE OID = {_regInfo.ID} FOR XML PATH('')), 1, 2, '') AS HazardFactors")?[0].HazardFactors.Split(';').Select(s => s.Trim()).ToList();
+
+                var _lsthazard = new List();
+                if(HazardFactors.Count != 0)
+                {
+                    foreach (var item in HazardFactors)
+                    {
+                        _lsthazard.AddRange(DAOHelp.GetDataBySQL($@"SELECT NAME,Standard,[Describe]  FROM Dict_HazardType WHERE NAME =  '{item}' GROUP BY Name,Standard,[Describe]  ORDER BY Standard").ToList());
+                    }
+                  
+
+                    foreach (var item in HazardFactors)
+                    {
+                        var total = DAOHelp.GetDataBySQL($@"SELECT ID,Name,HazardFactors FROM Enrollment_Patient WHERE OEID = {_regInfo.ID} AND HazardFactors LIKE '%{item}%'").Count;
+                        var sign = DAOHelp.GetDataBySQL($@"SELECT ID,Name,HazardFactors FROM Enrollment_Patient WHERE OEID = {_regInfo.ID} AND HazardFactors LIKE '%{item}%' AND SignTime IS NOT NULL").Count;
+                        var percent = Math.Round((double)sign / (double)total, 2);
+
+                        foreach (var hazard in _lsthazard.Where(w => w.Name == item))
+                        {
+                            hazard.total = total;
+                            hazard.sign = sign;
+                            hazard.percent = percent;
+                        }
+                    }
+                }
+
+                tReport.RegisterData(_lsthazard, "H");
+                DataBand HazardData = tReport.Report.FindObject("HazardData") as DataBand;
+                HazardData.DataSource = tReport.Report.GetDataSource("H");
+                tReport.GetDataSource("H").Enabled = true;
+
+                tReport.RegisterData(_lsthazard, "H1");
+                DataBand HazardData1 = tReport.Report.FindObject("HazardData1") as DataBand;
+                HazardData1.DataSource = tReport.Report.GetDataSource("H1");
+                tReport.GetDataSource("H1").Enabled = true;
+
+                tReport.RegisterData(_lsthazard, "H2");
+                DataBand HazardData2 = tReport.Report.FindObject("HazardData2") as DataBand;
+                HazardData2.DataSource = tReport.Report.GetDataSource("H2");
+                tReport.GetDataSource("H2").Enabled = true;
+
+                tReport.RegisterData(_lsthazard, "H3");
+                DataBand HazardData3 = tReport.Report.FindObject("HazardData3") as DataBand;
+                HazardData3.DataSource = tReport.Report.GetDataSource("H3");
+                tReport.GetDataSource("H3").Enabled = true;
+
+                tReport.Prepare();   //准备
+                tReport.ShowPrepared();  //显示
+            }
+            catch (Exception ex)
+            {
+                Global.Msg("Info", ex.Message);
+                Console.WriteLine(ex.Message);
+            }
+        }
+
+        private void GeneralReport()
+        {
+
+            tReport = new FastReport.Report();   //实例化一个Report报表
+            try
+            {
+                var reportFile = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ReportFiles", "TReport.frx");
+                //var reportFile = "D:/Code/project/PEIS/TReport.frx";
+                tReport.Load(reportFile);
+                tReport.Preview = ReportPreview; //设置报表的Preview控件
+
+                #region// 注入数据源
+
+                // 登记信息
+                tReport.SetParameterValue("OrgName", _regInfo.Name);
+                tReport.SetParameterValue("OrgEId", _regInfo.ID);
+                tReport.SetParameterValue("ExamDate", _regInfo.ExamDate?.ToShortDateString());
+                tReport.SetParameterValue("Contactor", _regInfo.Contactor1);
+                tReport.SetParameterValue("Tel", _regInfo.Tel1);
+                tReport.SetParameterValue("Address", _regInfo.Address);
+                tReport.SetParameterValue("HospitalName", Global._hospital.Name);
+                tReport.SetParameterValue("SumPerson", _sumInfo?.SumPerson);
+                tReport.SetParameterValue("SumExamPerson", _sumInfo?.SumExamPerson);
+                tReport.SetParameterValue("ExamPercent", _sumInfo?.ExamPercent);
+                tReport.SetParameterValue("SumMale", _sumInfo?.SumMale);
+                tReport.SetParameterValue("SumFemale", _sumInfo?.SumFemale);
+                tReport.SetParameterValue("MaxAge", _sumInfo?.MaxAge);
+                tReport.SetParameterValue("MinAge", _sumInfo?.MinAge);
+
+                //收费列表
+                tReport.RegisterData(_lstOrgFeeItems, "F");
+                DataBand feeItems = tReport.Report.FindObject("FeeItems") as DataBand;
+                feeItems.DataSource = tReport.Report.GetDataSource("F");
+                tReport.GetDataSource("F").Enabled = true;
+
+                //异常结果
+                tReport.RegisterData(_lstConclusions.Take(10), "C");
+                DataBand conclusion = tReport.Report.FindObject("Conclusion") as DataBand;
+                conclusion.DataSource = tReport.Report.GetDataSource("C");
+                tReport.GetDataSource("C").Enabled = true;
+
+                //男性异常结果
+                tReport.RegisterData(_lstConclusions.OrderByDescending(o => o.SumMalePercent).ToList().Take(10), "B");
+                DataBand SumMale = tReport.Report.FindObject("SumMale") as DataBand;
+                SumMale.DataSource = tReport.Report.GetDataSource("B");
+                tReport.GetDataSource("B").Enabled = true;
+
+                //女性异常结果
+                tReport.RegisterData(_lstConclusions.OrderByDescending(o => o.SumFemalePercent).ToList().Take(10), "G");
+                DataBand SumFemale = tReport.Report.FindObject("SumFemale") as DataBand;
+                SumFemale.DataSource = tReport.Report.GetDataSource("G");
+                tReport.GetDataSource("G").Enabled = true;
+
+                tReport.RegisterData(_lstCon, "S");
+                DataBand S = tReport.Report.FindObject("StatisticsDetail") as DataBand;
+                S.DataSource = tReport.Report.GetDataSource("S");
+                tReport.GetDataSource("S").Enabled = true;
+
+
+                var newData = new List();
+                foreach (var item in _lstConclusions.Take(10))
+                {
+                    newData.Add(new ExamConclusion()
+                    {
+                        Conclusion = item.Conclusion,
+                        ResultFlag = "未检出",
+                        SumWarn = item.SumPerson - item.SumWarn,
+                        Suggestion = item.Suggestion
+                    });
+                }
+
+
+                var index = 0;
+                foreach (var group in _lstConclusions.Take(10).Concat(newData).GroupBy(g => new { g.Conclusion, g.Suggestion }).ToList())
+                {
+                    index++;
+                    tReport.RegisterData(group, "Z" + index);
+                }
+
+
+                if (index != 10)
+                {
+                    List List = new List
+                    {
+                        new ExamConclusion() { Conclusion = "填充", SumWarn = 0, ResultFlag = "" },
+                        new ExamConclusion() { Conclusion = "填充", SumWarn = 0, ResultFlag = "" }
+                    };
+
+                    for (int i = index + 1; i < 11; i++)
+                    {
+                        tReport.RegisterData(List, "Z" + i);
+                    }
+                }
+
+
+                #endregion
+
+                tReport.Prepare();   //准备
+                tReport.ShowPrepared();  //显示
+            }
+            catch (Exception ex)
+            {
+                Global.Msg("Info", ex.Message);
+                Console.WriteLine(ex.Message);
+            }
+        }
+
+        #endregion
+
         protected override object CreatePresenter()
         {
             return new TReportPresenter(this);
diff --git a/PEIS/View/Enrollment/EnrollmentOrgForm.cs b/PEIS/View/Enrollment/EnrollmentOrgForm.cs
index 799d990..63e338f 100644
--- a/PEIS/View/Enrollment/EnrollmentOrgForm.cs
+++ b/PEIS/View/Enrollment/EnrollmentOrgForm.cs
@@ -336,6 +336,15 @@ namespace PEIS.View.Enrollment
             var IsOccupational = Convert.ToBoolean(DgvOrg.GetRowCellValue(DgvOrg.GetSelectedRows()[0], "IsOccupational"));
             foreach (var item in _lstGroup)
             {
+                if (IsOccupational)
+                {
+                    if(string.IsNullOrEmpty(item.JobStatus) || string.IsNullOrEmpty(item.HazardFactors))
+                    {
+                        Global.Msg("info", "请选择在岗情况或接害因素");
+                        return;
+                    }
+                }
+
                 item.Sex = item.Sex == null ? "0" : item.Sex.Equals("男") ? "1" : item.Sex.Equals("女") ? "2" : "0";
                 item.Type = IsOccupational ? "职业体检" : "健康体检";
                 if(item.ID != 0)
diff --git a/PEIS/View/Enrollment/NewEnrollmentPersonForm.Designer.cs b/PEIS/View/Enrollment/NewEnrollmentPersonForm.Designer.cs
index a3b4e20..ff60f43 100644
--- a/PEIS/View/Enrollment/NewEnrollmentPersonForm.Designer.cs
+++ b/PEIS/View/Enrollment/NewEnrollmentPersonForm.Designer.cs
@@ -155,7 +155,7 @@
             this.Company.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
             this.Company.Name = "Company";
             this.Company.Size = new System.Drawing.Size(437, 23);
-            this.Company.TabIndex = 11;
+            this.Company.TabIndex = 16;
             // 
             // label3
             // 
@@ -215,7 +215,7 @@
             this.Description.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
             this.Description.Name = "Description";
             this.Description.Size = new System.Drawing.Size(437, 23);
-            this.Description.TabIndex = 12;
+            this.Description.TabIndex = 17;
             // 
             // RemarkLabel
             // 
@@ -246,7 +246,7 @@
             this.Address1.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
             this.Address1.Name = "Address1";
             this.Address1.Size = new System.Drawing.Size(437, 23);
-            this.Address1.TabIndex = 10;
+            this.Address1.TabIndex = 15;
             // 
             // Contactor2
             // 
@@ -578,7 +578,7 @@
             this.HazardYears.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
             this.HazardYears.Name = "HazardYears";
             this.HazardYears.Size = new System.Drawing.Size(172, 23);
-            this.HazardYears.TabIndex = 123;
+            this.HazardYears.TabIndex = 13;
             // 
             // JobTypes
             // 
@@ -588,7 +588,7 @@
             this.JobTypes.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
             this.JobTypes.Name = "JobTypes";
             this.JobTypes.Size = new System.Drawing.Size(172, 23);
-            this.JobTypes.TabIndex = 122;
+            this.JobTypes.TabIndex = 11;
             // 
             // label7
             // 
@@ -621,7 +621,7 @@
             this.JobStatusComboBox.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
             this.JobStatusComboBox.Name = "JobStatusComboBox";
             this.JobStatusComboBox.Size = new System.Drawing.Size(176, 25);
-            this.JobStatusComboBox.TabIndex = 120;
+            this.JobStatusComboBox.TabIndex = 10;
             // 
             // label9
             // 
@@ -660,7 +660,7 @@
             this.HazardFactorsComboBox.Properties.SelectAllItemCaption = "(全选)";
             this.HazardFactorsComboBox.Properties.SeparatorChar = ';';
             this.HazardFactorsComboBox.Size = new System.Drawing.Size(437, 24);
-            this.HazardFactorsComboBox.TabIndex = 128;
+            this.HazardFactorsComboBox.TabIndex = 14;
             // 
             // label11
             // 
@@ -681,7 +681,7 @@
             this.WorkYears.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3);
             this.WorkYears.Name = "WorkYears";
             this.WorkYears.Size = new System.Drawing.Size(176, 23);
-            this.WorkYears.TabIndex = 130;
+            this.WorkYears.TabIndex = 12;
             // 
             // NewEnrollmentPersonForm
             // 
diff --git a/PEIS/View/Enrollment/NewEnrollmentPersonForm.cs b/PEIS/View/Enrollment/NewEnrollmentPersonForm.cs
index 498e4e1..7013d08 100644
--- a/PEIS/View/Enrollment/NewEnrollmentPersonForm.cs
+++ b/PEIS/View/Enrollment/NewEnrollmentPersonForm.cs
@@ -202,7 +202,11 @@ namespace PEIS.View.Enrollment
             JobStatusComboBox.SelectedValue = item?.JobStatus ?? "岗前";
             WorkYears.Text = item?.WorkYears;
             HazardYears.Text = item?.HazardYears;
-            HazardFactorsComboBox.SetEditValue(item?.HazardFactors.Split(';').Select(s => (object)s.Trim()).ToList());
+
+            if (item.ExamType.Contains("职业"))
+            {
+                HazardFactorsComboBox.SetEditValue(item?.HazardFactors.Split(';').Select(s => (object)s.Trim()).ToList());
+            }
 
             OnGetPid();
         }
@@ -282,6 +286,42 @@ namespace PEIS.View.Enrollment
                 return;
             }
 
+            var ExamType = ExamTypeComboBox.SelectedValue?.ToString();
+
+            if (ExamType.Contains("职业"))
+            {
+                if(string.IsNullOrEmpty(JobTypes.Text.Trim()))
+                {
+                    Global.Msg("err", "请输入工种!");
+                    return;
+                }
+
+                if (string.IsNullOrEmpty(WorkYears.Text.Trim()))
+                {
+                    Global.Msg("err", "请输入工龄!");
+                    return;
+                }
+
+                if (string.IsNullOrEmpty(HazardYears.Text.Trim()))
+                {
+                    Global.Msg("err", "请输入接害工龄!");
+                    return;
+
+                }
+
+                if (string.IsNullOrEmpty(JobStatusComboBox.SelectedValue?.ToString().Trim()))
+                {
+                    Global.Msg("err", "请选择工作情况!");
+                    return;
+                }
+
+                if (string.IsNullOrEmpty(HazardFactorsComboBox.Text.Trim()))
+                {
+                    Global.Msg("err", "请选择接害因素!");
+                    return;
+                }
+            }
+
             EnrollmentPatient item = new EnrollmentPatient()
             {
                 Name = NameTextBox.Text.Trim(),
@@ -308,7 +348,7 @@ namespace PEIS.View.Enrollment
                 SpellCode = PingYinHelper.GetTotalPingYin(NameTextBox.Text.Trim()).FirstPingYin.Count == 0 ? null : PingYinHelper.GetTotalPingYin(NameTextBox.Text.Trim()).FirstPingYin[0]
             };
 
-            var ExamType = ExamTypeComboBox.SelectedValue?.ToString();
+           
             if (ExamType.Contains("职业"))
             {
                 item.JobTypes = JobTypes.Text.Trim();
diff --git a/PEIS/View/Enrollment/NewEnrollmentPersonForm.resx b/PEIS/View/Enrollment/NewEnrollmentPersonForm.resx
index 8646221..b7b2951 100644
--- a/PEIS/View/Enrollment/NewEnrollmentPersonForm.resx
+++ b/PEIS/View/Enrollment/NewEnrollmentPersonForm.resx
@@ -120,52 +120,52 @@
   
   
     
-        iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAH1JREFUSEvt
-        lEEKgDAMBPNJf5GX+T+9aiM5REhDVlPx0AGhbXan4KE0+R8787Ixr7pNIx3p6raPBNt3IJfAHaSAZG9k
-        iplMSCSIZhCeyDt7hRXatY5rMOJ6uTD0AiOv/0We0Dt7RCSKZikygkzGBSki2Qu40IA6w5/ryccQnexo
-        4OWtCNeHAAAAAElFTkSuQmCC
+        iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAHhJREFUSEvt
+        lEEOgCAMBPmkv9iX+T+8ampigtjUrlLCgTm2u9OEAylNhmMDlgys9fwN6Ui3nj+QYAZ25gjdYQpM9oan
+        6MmYWAJrR6GJtNkvSmFz+UUhbi8XQg+EPpEm1GafsETWzoVH4MmoMEUme0IX2E74dz3pzgHsaODlqTYF
+        xgAAAABJRU5ErkJggg==
 
   
   
     
-        iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAPJJREFUSEtj
-        GAWjgCRgP/9/KJRJfWA/73+kw7z//4GWmEKFqAeAhsaCDAfiy3az/2tChakDgC5PhBp+3m7+f1WoMHUA
-        0OWpUMPP2Mz7rwQVpg4AujwTavgJl4X/5aDChIHD3P8NUCZOAHR5Ltjwuf+POE3/Lw0VJgyAmtKhGnFa
-        AnR5IdTlB5xn/xeHChMPgBpX4bIE6PJSqNwe54X/haHCpAO4JfP/10OFQC6vBIvN+78DKC4AFSYfwC0B
-        +gTo8looe4vDqv88UCWUA7glELzBsu8/J1SKegBsyfz/a4xn/meFCtEANPxngrJGwShABwwMAJBYlx6C
-        WXdWAAAAAElFTkSuQmCC
+        iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAPhJREFUSEvt
+        jyFLg1EUhodgEBYEg0EwDBbMsiCMnYvbX1hYMBhEDAsGg2Fsv2BVZOwcVseCYcFgWDAYBIM/6BHn3Yce
+        +FB3F78HLlzOc+/73lsqFRT8BzHafrYxROkEBTFq3iUjxtlneFDeGyOOvE9ClPMY/tYwqt4nIcZFDH+t
+        KxXvkxDlKoa/tCYcep9LGDPwM48Y3WX4mOfTOw68zyUol/Fiboko1/Hli+aIfe9/JSjTvBIxbqJ7ak7Y
+        8/7PZCVGfzUT5Ta+/DEYuz9vrMH3n4jRi/t5mFL2Z9cmK/laDydDdvyZZJYlxuz4nm3vNseALT8qKMj4
+        AJBYlx7zXbLXAAAAAElFTkSuQmCC
 
   
   
     
-        iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAMVJREFUSEvt
-        lM0NwjAMhTMBBxYiPVXMwAYsAVdmANILe2Q0U7sOSVVHcRQqOPRJn5T678ltFbPpf9Q/YG+fcBq5ttA5
-        6I8v2PHYqG6As3UA3+Dg4MZjo8aEp4I72CYmE89jo4IBnYXVESosSGcQtpmzbBKUrcUgJpOzT9amZyos
-        CGeItTykaPCJCXCv2iC8msBksIwH0nzBQPjACOUGuBC5vMagRSoDPlfDvWoDLKxBb9CiooH0+1WRM1j9
-        slv9ut70IxnzBoJVbPdrwLwAAAAAAElFTkSuQmCC
+        iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAALlJREFUSEvt
+        lMENwjAMRTMBBxbCPVXMwAYs0V6ZAZpe2COjfdSUVsV1FEemgkO/9KW0if1kO4pzu/5G9QNH6nChDq3F
+        lUd9fuLA87uqx5U88A2fPG48vyOPEA/cQSaPkMDzz4C4FkofzGMk6QBTNZ9eBwlKnhUAYVF2/OYxksyA
+        Vc8XfseqAWKLhP/SfgYgDHgaMvVoolP7GoBFKsA8g0KXAniPc9YDLMoC+NUrdgqw+WO3+XO962d6AYJV
+        bPcLpuzLAAAAAElFTkSuQmCC
 
   
   
     
-        iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAARhJREFUSEvt
-        VLEOwVAU7aeYDH7Apm2I0WawkYjNJDFbfYCxbSQmiVHY/IDFF13nvhx9RFVfEQMnuWnfufee09v3Wu/3
-        EMRyyAuWlQdEJC9Y9gUEiVT8SBZ4iszRC0ckM9WirAXIBAU6ZnZj8RDVoqzFJcllaRgDaHFp8cygEUnb
-        T2QcxjJCXYv0HUoZ4L322WgD75rpGzBf3ABPPGWTik78WOaXNSbqsiwFc8UNwB2Vh1GdlNdcSlU5nLoT
-        qRTKI5wMMhtc6/MazATNWGqk3jyBfjjalMhO9wD3Q+zDVjlcByxLYWpdDBQQX7HxOvZM34A5NwPFR78D
-        Fzw04I/OJF8M3ZsNZS3CSDpImhPzYqxh0KPsH1+H550BOIr69OqcMmkAAAAASUVORK5CYII=
+        iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAQBJREFUSEvt
+        VLsKwkAQzKdYWfgDdt4dEUs7CzsFsbMSrG39AMvbQ7ASLEU7f8DGLxrZmIO40cglPgodmCJ7szPZu0ui
+        6OegCcciSn0wNAFFlPrPQTvUlMVSjhxMizl7SX8OcOmY+aYwgr2kvz+8ynvoX1LWnwa0LDrKYWIIY01o
+        y3WPUgHaYiBvC++11DGCAwxhljGdKsLCPyuHntQHB2jCieuG0PS1eIV6EmBxvlWXC7jbEKovakgmiAkN
+        X3vtBPzhXO/2ns9AE0aKsEsCCMOcPjSAoR3WaWOWB6ljlApgvPU7CMHDgPRHlyxWJJ/NVvpHxqLrb0xF
+        bhShL/3/+B4uOIr69HXlzckAAAAASUVORK5CYII=
 
   
   
     
-        iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAb5JREFUSEvl
-        lL1LA0EQxVMpiJYWWomKgoUg6czXXkTFTgRBC0UQrCwsLOwMtoKCYBHM3UWDTRrRwsImhWgvCDaChf9D
-        LJ9v1zm5y8d5SWzEHwzk3r6Z2Z3bS+x/kLYxpxzsKhdXjONMAWvxPHpkuTNYuMRAg3hNFzAltvZgkUMp
-        dp91MK1O0ZstYkTZyImOVAkDYm+NjINVXcBycCRSAHUGZZq4uBGpNZhcZnI15aBfpDq8k1hFxEWKDpPf
-        2eBZHhviO+WWSNFh4pvl4kkeG8L1JTMmGxsiRYfJF0yuqhJGRarDG9HMOSZFig6TN83uHNyKFEAVsCjr
-        jyK1TsbGtS6iT8MXmUjY6ONux6htS3FYNsbF3h7+Yv7gC37gJRgSW2fwlsybefPOs3Bej2+5jC5Zbh8W
-        2uMI1idyv1CsFr7EFW8cszYGRW6IOZ0Oft0ihUNzkoU/zKxdpERuiimuNxOlQdLBMM0vJuGHD8j8H+nw
-        NfBCLEEWTtBN450282oeiNwU+iqmcG2woViCcGFHG3hTLkUKhbdq3+zeO4H3O6TBlzFCSIrhO6/ZaPzw
-        Wp7QrI8eGmI3SINKpAZ/jFjsE9vLiZmE0xwHAAAAAElFTkSuQmCC
+        iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAbJJREFUSEvl
+        lLFrVEEQh1MpiJYWWgWVCBaCpDO5vNmEGOxCIKCFIghWKVKksMuRVlAIWITczl7usEkjSZEiTQrRXhBs
+        BAv/h1h+8pbdsAyn712wET+YZn+zM29+zNuJif+COc8DUTYk8F4Cb6oeT6Z3uGTzzoUoQ1EYEd/metyz
+        +WMhyqtU7MO8cl/ecnm+z03xdHOjzpBr9l4rKuVxXcApr61WI7tIbBI4tForRNmXwGlHuWq1TJ7E9Zm2
+        WiPi+SGBL/a8pJjyhdUaEeW7C3y25yUusBJt8jyzWiMuMBDlVIbcslomW7Swx12rNSKe52lTjqxWIz2W
+        k/7Jaq2pPAfR48DA9ZmZ8VxZ2GNKlLW8ps5z294bi7JYGZXyUQKTNv9cOGUp+h04rJSd2r7VfS7YvLER
+        z0vneXqn+xeKWaTHo2zHoue61UvidHXsIlYbiXhmRfkZvQ50rG45e5vaNJhVbojytc0PFN+jOooGOWxu
+        5OE2F0U5Tqu5ZXWLKCd2u9KHdW1uRDzraQXfWW0UEtg88z8VzmFzI+U73xQj7/3OmhLn2U6j/zHKO6nB
+        SasG/xy/ANvLiZmkPPdDAAAAAElFTkSuQmCC