Browse Source

孕妇、儿童、肺结核随访

jeremy 1 year ago
parent
commit
4ab4edfb6a

+ 9 - 0
src/VitalMixtureService/DBService/Repositories/FollowUpGravidaDBRepository.cs

@@ -0,0 +1,9 @@
+using VitalService.Entities;
+
+namespace VitalService.Repositories
+{
+    public class FollowUpGravidaDBRepository : SimpleDBRepository<FollowUpEntity>
+    {
+        public FollowUpGravidaDBRepository() : base("VitalFollowUpGravidaInfos") { }
+    }
+}

+ 9 - 0
src/VitalMixtureService/DBService/Repositories/FollowUpKidDBRepository.cs

@@ -0,0 +1,9 @@
+using VitalService.Entities;
+
+namespace VitalService.Repositories
+{
+    public class FollowUpKidDBRepository : SimpleDBRepository<FollowUpEntity>
+    {
+        public FollowUpKidDBRepository() : base("VitalFollowUpKidInfos") { }
+    }
+}

+ 9 - 0
src/VitalMixtureService/DBService/Repositories/FollowUpTBDBRepository.cs

@@ -0,0 +1,9 @@
+using VitalService.Entities;
+
+namespace VitalService.Repositories
+{
+    public class FollowUpTBDBRepository : SimpleDBRepository<FollowUpEntity>
+    {
+        public FollowUpTBDBRepository() : base("VitalFollowUpTBInfos") { }
+    }
+}

+ 41 - 0
src/VitalMixtureService/DBService/Service/FollowUpDBService.Gravida.cs

@@ -0,0 +1,41 @@
+using WingInterfaceLibrary.Interface.DBVitalInterface;
+
+namespace VitalService.Service
+{
+    /// <summary>
+    /// 随访数据服务-孕妇
+    /// </summary>
+    public partial class VitalDatabaseService : IVitalFollowUpDBService
+    {
+        private List<string> _gravidaFollowKeys = new List<string>
+        {
+            "MaternalHealthManagement",
+            "PrenatalFollowupServiceRecord",
+            "PostnatalVisitRecord",
+        };
+
+        /// <summary>
+        /// 是否孕妇随访
+        /// </summary>
+        /// <param name="followUpKey"></param>
+        /// <returns></returns>
+        private bool IsGravidaFollowUp(string followUpKey)
+        {
+            return _gravidaFollowKeys.Contains(followUpKey);
+        }
+
+        /// <summary>
+        /// 是否孕妇随访
+        /// </summary>
+        /// <param name="followUpKeys"></param>
+        /// <returns></returns>
+        private bool IsGravidaFollowUp(List<string> followUpKeys)
+        {
+            if (followUpKeys?.Any() ?? false)
+            {
+                return _gravidaFollowKeys.Intersect(followUpKeys).Any();
+            }
+            return false;
+        }
+    }
+}

+ 51 - 0
src/VitalMixtureService/DBService/Service/FollowUpDBService.Kid.cs

@@ -0,0 +1,51 @@
+using WingInterfaceLibrary.Interface.DBVitalInterface;
+
+namespace VitalService.Service
+{
+    /// <summary>
+    /// 随访数据服务-儿童
+    /// </summary>
+    public partial class VitalDatabaseService : IVitalFollowUpDBService
+    {
+        private List<string> _kidFollowKeys = new List<string>
+        {
+            "ET_FamilyVisitRecord",
+            "ET_1MSETJKJCLB",
+            "ET_3MSETJKJCLB",
+            "ET_6MSETJKJCLB",
+            "ET_8MSETJKJCLB",
+            "ET_12MSETJKJCLB",
+            "ET_18MSETJKJCLB",
+            "ET_24MSETJKJCLB",
+            "ET_30MSETJKJCLB",
+            "ET_3SETJKJCLB",
+            "ET_4SETJKJCLB",
+            "ET_5SETJKJCLB",
+            "ET_6SETJKJCLB",
+        };
+
+        /// <summary>
+        /// 是否儿童随访
+        /// </summary>
+        /// <param name="followUpKey"></param>
+        /// <returns></returns>
+        private bool IsKidFollowUp(string followUpKey)
+        {
+            return _kidFollowKeys.Contains(followUpKey);
+        }
+
+        /// <summary>
+        /// 是否儿童随访
+        /// </summary>
+        /// <param name="followUpKeys"></param>
+        /// <returns></returns>
+        private bool IsKidFollowUp(List<string> followUpKeys)
+        {
+            if (followUpKeys?.Any() ?? false)
+            {
+                return _kidFollowKeys.Intersect(followUpKeys).Any();
+            }
+            return false;
+        }
+    }
+}

+ 38 - 0
src/VitalMixtureService/DBService/Service/FollowUpDBService.TB.cs

@@ -0,0 +1,38 @@
+using WingInterfaceLibrary.Interface.DBVitalInterface;
+
+namespace VitalService.Service
+{
+    /// <summary>
+    /// 随访数据服务-肺结核
+    /// </summary>
+    public partial class VitalDatabaseService : IVitalFollowUpDBService
+    {
+        private List<string> _tbFollowKeys = new List<string>
+        {
+        };
+
+        /// <summary>
+        /// 是否肺结核随访
+        /// </summary>
+        /// <param name="followUpKey"></param>
+        /// <returns></returns>
+        private bool IsTBFollowUp(string followUpKey)
+        {
+            return _tbFollowKeys.Contains(followUpKey);
+        }
+
+        /// <summary>
+        /// 是否肺结核随访
+        /// </summary>
+        /// <param name="followUpKeys"></param>
+        /// <returns></returns>
+        private bool IsTBFollowUp(List<string> followUpKeys)
+        {
+            if (followUpKeys?.Any() ?? false)
+            {
+                return _tbFollowKeys.Intersect(followUpKeys).Any();
+            }
+            return false;
+        }
+    }
+}

+ 48 - 0
src/VitalMixtureService/DBService/Service/FollowUpDBService.cs

@@ -47,6 +47,18 @@ namespace VitalService.Service
                 var result = await _followUpSEVDBRepository.InsertOneAsync(entity);
                 return result;
             }
+            else if(IsKidFollowUp(request.Key))
+            {
+                return await _followUpKidDBRepository.InsertOneAsync(entity);
+            }
+            else if(IsGravidaFollowUp(request.Key))
+            {
+                return await _followUpGravidaDBRepository.InsertOneAsync(entity);
+            }
+            else if(IsTBFollowUp(request.Key))
+            {
+                return await _followUpTBDBRepository.InsertOneAsync(entity);
+            }
             else
             {
                 var result = await _followUpDBRepository.InsertOneAsync(entity);
@@ -220,6 +232,18 @@ namespace VitalService.Service
                 var result = await _followUpSEVDBRepository.UpdateOneAsync(filter, update) > 0;
                 return result;
             }
+            else if(IsKidFollowUp(request.Key))
+            {
+                return await _followUpKidDBRepository.UpdateOneAsync(filter, update) > 0;
+            }
+            else if(IsGravidaFollowUp(request.Key))
+            {
+                return await _followUpGravidaDBRepository.UpdateOneAsync(filter, update) > 0;
+            }
+            else if(IsTBFollowUp(request.Key))
+            {
+                return await _followUpTBDBRepository.UpdateOneAsync(filter, update) > 0;
+            }
             else
             {
                 var result = await _followUpDBRepository.UpdateOneAsync(filter, update) > 0;
@@ -289,6 +313,30 @@ namespace VitalService.Service
                         result.AddRange(sevResult);
                     }
                 }
+                if (IsKidFollowUp(request.Keys))
+                {
+                    var kidResult = await _followUpKidDBRepository.FindAllAsync(filter);
+                    if (kidResult != null && kidResult.Count > 0)
+                    {
+                        result.AddRange(kidResult);
+                    }
+                }
+                if (IsGravidaFollowUp(request.Keys))
+                {
+                    var gravidaResult = await _followUpGravidaDBRepository.FindAllAsync(filter);
+                    if (gravidaResult != null && gravidaResult.Count > 0)
+                    {
+                        result.AddRange(gravidaResult);
+                    }
+                }
+                if (IsTBFollowUp(request.Keys))
+                {
+                    var tbResult = await _followUpTBDBRepository.FindAllAsync(filter);
+                    if (tbResult != null && tbResult.Count > 0)
+                    {
+                        result.AddRange(tbResult);
+                    }
+                }
                 if (result != null && result.Count > 0)
                 {
                     result = result.OrderByDescending(x => x.CreateTime).ToList();

+ 9 - 0
src/VitalMixtureService/DBService/Service/VNoteDatabaseService.cs

@@ -35,6 +35,9 @@ namespace VitalService.Service
         private ExamDBRepository _examDBRepository { get; set; }
         private ElderlySelfCareInfoDBRepository _elderlySelfCareInfoDBRepository { get; set; }
         private FollowUpDBRepository _followUpDBRepository { get; set; }
+        private FollowUpKidDBRepository _followUpKidDBRepository { get; set; }
+        private FollowUpGravidaDBRepository _followUpGravidaDBRepository { get; set; }
+        private FollowUpTBDBRepository _followUpTBDBRepository { get; set; }
         private FollowUpDiabetesDBRepository _followUpDiabetesDBRepository { get; set; }
         private FollowUpGXYDBRepository _followUpGXYDBRepository { get; set; }
         private FollowUpSEVDBRepository _followUpSEVDBRepository{get;set;}
@@ -79,6 +82,9 @@ namespace VitalService.Service
             _examDBRepository = DBRepositoryFactory.GetRepository<ExamDBRepository>();
             _elderlySelfCareInfoDBRepository = DBRepositoryFactory.GetRepository<ElderlySelfCareInfoDBRepository>();
             _followUpDBRepository = DBRepositoryFactory.GetRepository<FollowUpDBRepository>();
+            _followUpKidDBRepository = DBRepositoryFactory.GetRepository<FollowUpKidDBRepository>();
+            _followUpGravidaDBRepository = DBRepositoryFactory.GetRepository<FollowUpGravidaDBRepository>();
+            _followUpTBDBRepository = DBRepositoryFactory.GetRepository<FollowUpTBDBRepository>();
             _followUpDiabetesDBRepository = DBRepositoryFactory.GetRepository<FollowUpDiabetesDBRepository>();
             _followUpGXYDBRepository = DBRepositoryFactory.GetRepository<FollowUpGXYDBRepository>();
             _followUpSEVDBRepository = DBRepositoryFactory.GetRepository<FollowUpSEVDBRepository>();
@@ -630,6 +636,9 @@ namespace VitalService.Service
             await _examDBRepository.CreateIndex();
             await _elderlySelfCareInfoDBRepository.CreateIndex();
             await _followUpDBRepository.CreateIndex();
+            await _followUpKidDBRepository.CreateIndex();
+            await _followUpGravidaDBRepository.CreateIndex();
+            await _followUpTBDBRepository.CreateIndex();
             await _followUpDiabetesDBRepository.CreateIndex();
             await _followUpGXYDBRepository.CreateIndex();
             await _followUpSEVDBRepository.CreateIndex();