基于asp.NET的病历管理系统 (源码+net+vue+部署文档+讲解等)

收藏关注不迷路!!

文末获取源码+数据库

感兴趣的可以先收藏起来,还有大家在毕设选题(免费咨询指导选题),项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

文章目录

  • 前言
  • 程序资料获取
  • 一、项目技术
  • 二、项目内容和功能介绍
  • 三、核心代码
    • 数据库参考
  • 四、效果图
  • 五 、资料获取


前言

博主介绍:✨全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,专注于Java/Python/小程序app/深度学习等计算机设计,主要对象是咱们计算机相关专业的大学生,希望您们都能前途无量!✨

精彩专栏 推荐订阅

计算机毕业设计设计精品实战案例

感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

  

程序资料获取

文末获取资料

一、项目技术

开发软件:VS 2017 (版本2017以上即可,不能低于2017)
数据库:SqlServer2008r2(数据库版本无限制,都可以导入)
开发模式:mvc
浏览器:谷歌浏览器

二、项目内容和功能介绍

一、技术架构与平台
技术架构:基于.NET的病历管理系统采用先进的技术架构,确保系统的稳定性和可靠性。.NET平台为系统提供了稳定而可靠的运行环境,具有强大的兼容性和可扩展性。
开发平台:系统通常使用Visual Studio等集成开发环境进行开发,利用.NET Framework或.NET Core等框架实现系统的各项功能。
二、功能特点
患者信息管理:系统全面记录患者的基本信息,如姓名、性别、年龄、联系方式等,以及家族病史、过敏史等关键信息,为医生全面了解患者状况提供依据。
病历记录与编辑:系统支持医生详细记录患者的症状、体征、检查结果、诊断意见和治疗方案等信息。病历记录功能具备友好的用户界面和便捷的输入方式,提高医生的录入效率。
病历查询与检索:系统允许医生根据患者姓名、病历号、疾病类型等多种条件快速查找病历,提高医疗工作效率。同时,系统还提供病历分类与归档功能,方便病历的存储和管理。
医疗影像管理:系统能够存储和查看患者的各类医疗影像,如X光片、CT扫描等,实现图文并茂的病历展示。
权限管理与数据安全:系统具备严格的权限管理功能,不同角色的医护人员拥有不同级别的访问权限,确保患者隐私和数据安全。同时,系统还采用数据加密、备份等机制,进一步保障数据的安全性。
数据统计与分析:系统提供数据统计与分析功能,帮助医院管理者了解疾病分布、治疗效果等情况。通过生成各类报表和图表,为医疗决策提供有力支持。
三、系统优势
提高工作效率:电子化病历管理可以大大减少手工操作的繁琐性,提高病历录入和检索的速度。
减少人为错误:通过电子化的方式录入病历信息,可以有效避免纸质病历中常见的手写错误和遗漏。
便于统计分析:电子病历系统可以方便地对病历信息进行统计分析,为医院管理和科研工作提供有力支持。
保障信息安全:通过数据库加密、访问控制等手段,可以确保病历信息的安全性和隐私性。
四、应用场景
基于.NET的病历管理系统广泛应用于各级医疗机构,如医院、诊所、卫生院等。它可以帮助医疗机构实现病历信息的数字化存储、高效管理和便捷访问,提升医疗服务质量和管理水平。
五、发展趋势
随着医疗信息化的不断深入和技术的不断发展,基于.NET的病历管理系统也将不断完善和升级。未来,系统可以引入更多的人工智能和大数据技术,实现病历信息的智能化处理和挖掘。同时,加强与其他医疗信息系统的集成和共享,实现医疗信息的全面互联互通,将进一步提升医院病历管理的效率和水平。
综上所述,基于.NET的病历管理系统是一款功能强大、安全可靠的信息化管理工具,为医疗行业提供了全面、高效的病历管理解决方案。

三、核心代码

部分代码:


using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.StaticFiles;
using Newtonsoft.Json;
using Xiezn.Core.Business.Services;
using Xiezn.Core.Common.Helpers;
using Xiezn.Core.Models.ViewModel;

namespace Xiezn.Core.Controllers
{
    /// 
    /// 公共接口
    /// 
    [Route("[action]")]
    public class CommonController : Controller
    {
        private readonly IHostingEnvironment _hostingEnvironment;
        private readonly string _savePath;
        private readonly CommonService _bll;
        private readonly ConfigService _configBLL;

        /// 
        /// 构造函数
        /// 
        public CommonController(IHostingEnvironment hostingEnvironment)
        {
            _hostingEnvironment = hostingEnvironment;
            _savePath = _hostingEnvironment.WebRootPath + Path.DirectorySeparatorChar + ConfigHelper.GetConfig("SchemaName") + Path.DirectorySeparatorChar + "upload" + Path.DirectorySeparatorChar;
            _bll = new CommonService();
            _configBLL = new ConfigService();
        }

        /// 
        /// 获取某表的某个字段列表接口
        /// 
        /// 表名
        /// 列名
        /// 
        [HttpGet("{tableName}/{columnName}")]
        public JsonResult Option(string tableName, string columnName)
        {
            try
            {
                int level = Convert.ToInt32(HttpContext.Request.Query["level"]);
                string parent = HttpContext.Request.Query["parent"];
                string conditionColumn = HttpContext.Request.Query["conditionColumn"];
                string conditionValue = HttpContext.Request.Query["conditionValue"];
                if (!string.IsNullOrEmpty(conditionColumn) && !string.IsNullOrEmpty(conditionValue))
                {
                    return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, "", 0, "option", 0, 0, " AND " + conditionColumn + " = '" + conditionValue + "' ") });
                }
                if (level == 0)
                {
                    return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, parent, level) });
                }
                else
                {
                    return Json(new { Code = 0, Data = _bll.Common(tableName, columnName) });
                }
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// 
        /// 根据option字段值获取某表的单行记录接口
        /// 
        /// 表名
        /// 列名
        /// 列值
        /// 
        [HttpGet("{tableName}/{columnName}")]
        public JsonResult Follow(string tableName, string columnName, string columnValue)
        {
            try
            {
                return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, columnValue, 0, "follow") });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// 
        /// 根据主键id修改table表的sfsh状态接口
        /// 
        /// 表名
        /// 主键id
        /// 当前审核状态(是/否)
        /// 
        [HttpPost("{tableName}")]
        [Authorize(Roles = "Admin,Client")]
        public JsonResult Sh(string tableName, int id, string sfsh)
        {
            try
            {
                if (_bll.Common(tableName, id.ToString(), sfsh, 0, "sh") > 0)
                {
                    return Json(new { Code = 0, Msg = "更新成功!" });
                }

                return Json(new { Code = -1, Msg = "更新失败!" });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// 
        /// 获取需要提醒的记录数接口
        /// 
        /// 表名
        /// 列名
        /// 类型(1表示数字比较提醒,2表示日期比较提醒)
        /// remindStart小于等于columnName满足条件提醒,当比较日期时,该值表示天数
        /// columnName小于等于remindEnd 满足条件提醒,当比较日期时,该值表示天数
        /// 
        [HttpGet("{tableName}/{columnName}/{type}")]
        public JsonResult Remind(string tableName, string columnName, int type, int remindStart, int remindEnd)
        {
            try
            {
                return Json(new { Code = 0, Count = _bll.Common(tableName, columnName, "", type, "remind", remindStart, remindEnd) });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// 
        /// 计算规则接口
        /// 
        /// 表名
        /// 列名
        /// 
        [HttpGet("{tableName}/{columnName}")]
        public JsonResult Cal(string tableName, string columnName)
        {
            try
            {
                return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, "", 0, "cal") });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// 
        /// 人脸比较
        /// 
        /// 图片1名称
        /// 图片2名称
        /// 
        [HttpGet]
        public JsonResult MatchFace(string face1, string face2)
        {
            try
            {
                BaiduAiHelper.clientId = _configBLL.GetValueByName("APIKey");
                BaiduAiHelper.clientSecret = _configBLL.GetValueByName("SecretKey");
                BaiduAiHelper.GetAccessToken();
                List<FaceMatchViewModel> matchInfo = new List<FaceMatchViewModel>
                {
                    new FaceMatchViewModel { image = FuncHelper.ImageToBase64(_savePath + face1) },
                    new FaceMatchViewModel { image = FuncHelper.ImageToBase64(_savePath + face2) }
                };
                string result = BaiduAiHelper.FaceMatch(JsonConvert.SerializeObject(matchInfo));
                dynamic resObj = JsonConvert.DeserializeObject(result);
                if (resObj.error_code == 0)
                {
                    return Json(new { Code = 0, Score = resObj.result.score, Msg = "匹配成功!" });
                }
                else
                {
                    return Json(new { Code = -1, Score = 0, Msg = "匹配失败!" });
                }
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// 
        /// 定位接口(根据经纬度坐标获取到省市县(区)信息)
        /// 
        /// 经度
        /// 纬度
        /// 
        [HttpGet]
        public JsonResult Location(double lat, double lng)
        {
            try
            {
                AddressViewModel addressViewModel = BaiduAiHelper.GetAddress(_configBLL.GetValueByName("baidu_ditu_ak"), lng, lat);
                if (addressViewModel == null)
                {
                    return Json(new { Code = -1, Msg = "位置信息获取失败!" });
                }
                else
                {
                    return Json(new { Code = 0, Data = addressViewModel });
                }
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// 
        /// 类别统计接口
        /// 
        /// 表名
        /// 列名
        /// 
        [HttpGet("{tableName}/{columnName}")]
        public JsonResult Group(string tableName, string columnName)
        {
            try
            {
                return Json(new { Code = 0, Data = _bll.Common(tableName, columnName, "", 0, "group") });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// 
        /// 按值统计接口
        /// 
        /// 表名
        /// 列名
        /// 列名
        /// 
        [HttpGet("{tableName}/{xColumnName}/{yColumnName}")]
        public JsonResult Value(string tableName, string xColumnName, string yColumnName)
        {
            try
            {
                return Json(new { Code = 0, Data = _bll.Common(tableName, xColumnName, yColumnName, 0, "value") });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// 
        /// 按时间统计类型接口
        /// 
        /// 表名
        /// 列名
        /// 列名
        /// 类型
        /// 
        [HttpGet("{tableName}/{xColumnName}/{yColumnName}/{timeStatType}")]
        public JsonResult Value(string tableName, string xColumnName, string yColumnName, string timeStatType)
        {
            try
            {
                return Json(new { Code = 0, Data = _bll.StatDate(tableName, xColumnName, yColumnName, timeStatType) });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }



    }
}



数据库参考



-- ----------------------------
-- Table structure for config
-- ----------------------------
DROP TABLE [dbo].[config]
GO
CREATE TABLE [dbo].[config] (
[id] [bigint]  primary key ,
[name] nvarchar(100) NOT NULL ,
[value] nvarchar(100) NULL 
)


GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description', 
'SCHEMA', N'dbo', 
'TABLE', N'config', 
NULL, NULL)) > 0) 
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'配置文件'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'config'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'配置文件'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'config'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description', 
'SCHEMA', N'dbo', 
'TABLE', N'config', 
'COLUMN', N'id')) > 0) 
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'主键'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'config'
, @level2type = 'COLUMN', @level2name = N'id'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'主键'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'config'
, @level2type = 'COLUMN', @level2name = N'id'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description', 
'SCHEMA', N'dbo', 
'TABLE', N'config', 
'COLUMN', N'name')) > 0) 
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'配置参数名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'config'
, @level2type = 'COLUMN', @level2name = N'name'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'配置参数名称'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'config'
, @level2type = 'COLUMN', @level2name = N'name'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description', 
'SCHEMA', N'dbo', 
'TABLE', N'config', 
'COLUMN', N'value')) > 0) 
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'配置参数值'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'config'
, @level2type = 'COLUMN', @level2name = N'value'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'配置参数值'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'config'
, @level2type = 'COLUMN', @level2name = N'value'
GO

-- ----------------------------
-- Records of config
-- ----------------------------
INSERT INTO [dbo].[config] ([id], [name], [value]) VALUES (N'1', N'picture1', N'upload/picture1.jpg')
GO
GO
INSERT INTO [dbo].[config] ([id], [name], [value]) VALUES (N'2', N'picture2', N'upload/picture2.jpg')
GO
GO
INSERT INTO [dbo].[config] ([id], [name], [value]) VALUES (N'3', N'picture3', N'upload/picture3.jpg')
GO
GO

-- ----------------------------
-- Table structure for discussjingdianxinxi
-- ----------------------------
DROP TABLE [dbo].[discussjingdianxinxi]
GO
CREATE TABLE [dbo].[discussjingdianxinxi] (
[id] [bigint]  primary key ,
[addtime] datetime2(0)  default getdate() ,
[refid] bigint NOT NULL ,
[userid] bigint NOT NULL ,
[nickname] nvarchar(200) NULL ,
[content] nvarchar(MAX) NOT NULL ,
[reply] nvarchar(MAX) NULL 
)


GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description', 
'SCHEMA', N'dbo', 
'TABLE', N'discussjingdianxinxi', 
NULL, NULL)) > 0) 
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'景点信息评论表'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'景点信息评论表'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description', 
'SCHEMA', N'dbo', 
'TABLE', N'discussjingdianxinxi', 
'COLUMN', N'id')) > 0) 
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'主键'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'id'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'主键'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'id'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description', 
'SCHEMA', N'dbo', 
'TABLE', N'discussjingdianxinxi', 
'COLUMN', N'addtime')) > 0) 
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'创建时间'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'addtime'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'创建时间'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'addtime'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description', 
'SCHEMA', N'dbo', 
'TABLE', N'discussjingdianxinxi', 
'COLUMN', N'refid')) > 0) 
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'关联表id'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'refid'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'关联表id'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'refid'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description', 
'SCHEMA', N'dbo', 
'TABLE', N'discussjingdianxinxi', 
'COLUMN', N'userid')) > 0) 
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'用户id'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'userid'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'用户id'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'userid'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description', 
'SCHEMA', N'dbo', 
'TABLE', N'discussjingdianxinxi', 
'COLUMN', N'nickname')) > 0) 
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'用户名'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'nickname'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'用户名'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'nickname'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description', 
'SCHEMA', N'dbo', 
'TABLE', N'discussjingdianxinxi', 
'COLUMN', N'content')) > 0) 
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'评论内容'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'content'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'评论内容'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'content'
GO
IF ((SELECT COUNT(*) from fn_listextendedproperty('MS_Description', 
'SCHEMA', N'dbo', 
'TABLE', N'discussjingdianxinxi', 
'COLUMN', N'reply')) > 0) 
EXEC sp_updateextendedproperty @name = N'MS_Description', @value = N'回复内容'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'reply'
ELSE
EXEC sp_addextendedproperty @name = N'MS_Description', @value = N'回复内容'
, @level0type = 'SCHEMA', @level0name = N'dbo'
, @level1type = 'TABLE', @level1name = N'discussjingdianxinxi'
, @level2type = 'COLUMN', @level2name = N'reply'
GO


四、效果图

基于asp.NET的病历管理系统 (源码+net+vue+部署文档+讲解等)_第1张图片

基于asp.NET的病历管理系统 (源码+net+vue+部署文档+讲解等)_第2张图片
基于asp.NET的病历管理系统 (源码+net+vue+部署文档+讲解等)_第3张图片
请添加图片描述
基于asp.NET的病历管理系统 (源码+net+vue+部署文档+讲解等)_第4张图片
基于asp.NET的病历管理系统 (源码+net+vue+部署文档+讲解等)_第5张图片
基于asp.NET的病历管理系统 (源码+net+vue+部署文档+讲解等)_第6张图片
基于asp.NET的病历管理系统 (源码+net+vue+部署文档+讲解等)_第7张图片
基于asp.NET的病历管理系统 (源码+net+vue+部署文档+讲解等)_第8张图片

五 、资料获取

文章下方名片联系我即可~

精彩专栏推荐订阅:在下方专栏

毕业设计精品实战案例

收藏关注不迷路!!

文末获取设计

你可能感兴趣的:(计算机毕业设计,asp,asp.net,vue.js,后端)