项目在线演示网址:

http://39.105.101.77:8080/index.html#/

1、项目开发

1.1 项目开发流程整体说明:

  • 可行性研究
    • 工作负荷:列出现有系统所承担的工作及工作量
    • 费用开支:列出由于运行现有系统所引起的费用开支
    • 技术条件方面的可能性
    • 可选择的其他系统方案
    • 投资及效益分析
    • 法律方面的可行性
    • 。。。
  • 需求分析:
    • 项目功能,项目模块
    • 对性能的规定
    • 数据管理能力要求
  • 系统设计:指导开发代码的具体做法,对团队合作、代码测试、后期维护有非常重要的作用。
  • 系统实现:编码实现项目功能
  • 系统测试:决定项目的健壮性,功能的完善程度
  • 系统维护:项目后期完善,二次开发

Java框架阶段项目--HIS课件 - 图17

  • 迭代开发
    • 根据业务复杂度,项目可以进行多次迭代开发
    • 先启迭代
      • 重点确认需求部分
      • 少量代码,以项目框架搭建为主
    • 精化迭代
      • 重点是分析与设计部分,修改优化和完善需求部分
      • 进入代码阶段
      • 少量测试
    • 构造迭代
      • 重点是编码部分,修改优化和完善需求、设计部分
      • 测试部分也是重点
      • 进入部署阶段,本次迭代后期,部署也是重点部分
      • 根据业务规模和实际情况,可能会进行多次构造迭代
    • 移交迭代
      • 重点是部署部分,少量测试和代码优化

image.png

1.2 项目背景

  1. 在医院的管理方面,计算机技术发挥了重要的作用。为了方便医院管理,简化流程,医院管理系统已经在各大医院中得到应用。而**HIS(门诊管理)系统作为医院管理系统的一个子系统**,其重要程度远远胜过医院管理系统中的一些其他子系统。<br /> 通常,医院门诊流量大,手续较繁锁。在传统的手工方式下,医护人员要做大量的重复工作,而这些工作往往是一些必要的信息记录工作。在传统方式下,这些工作的进行不仅效率非常低,而且经常出现差错。记录信息的纸质文件不仅不方便管理,影响工作效率,还造成了很多就诊病人得不到合理有效的就诊服务,甚至影响医疗质量。<br /> 正是因为这样,门诊管理系统的优势得以显现。门诊管理系统不仅可以使门诊的各个部门高度紧密的协作,而且简化了门诊就医的流程。它将原本的纸质病历变成电子病历,很多操作都是通过系统自动完成,比如病历中患者基本信息的填写。这使得患者就医的时间得到压缩,医生需要做的工作得到减少。而且电子病历更易存取,方便管理,更加安全。<br /> 门诊管理系统不仅可以提搞服务效率和质量,使病人和医生情绪能够得以放松,还使得门诊工作可以高效有序的运转。

1.3 开发目标

  1. 项目的总体目标是为医院的门诊开发一套信息化门诊系统,能满足医院从病人挂号到诊断到缴费的一整套流程的业务需要,为门诊医生和门诊相关的医院工作人员提供便利,**实现挂号、看病与缴费的系统化流程。**

1.4 需求调研

对业务相关人进行调研,确定工作流程。本部分的语言更偏重业务描述。

调研目的 业务功能 调研人 XXX、XX
调研时间
(日期、起止时间)
202X-3-20 至202X-3-28 调研地点 XXX医院
调研对象 业务人员 调研部门 门诊
调研问题 回答问题 备注
挂号窗口的功能 对到医院的患者,进行现场挂号、退号、收费(包括各种药品、检查、检验等收费)、退费,以及患者费用的查询。 窗口挂号人员
医生坐诊工作管理 医生填写患者病历,根据问诊情况初步判断患者病情,根据初步判断开设检查和检验项目;
根据患者的检查和检验结果,完成病情确诊;
根据患者确诊病情,进行开药或者开立处置(例如:洗胃等),进行治疗
门诊医生
药房管理 药品的入库、信息维护等工作;
根据患者缴费情况,发药,并录入系统;
如果患者退药,将退回的药品入库;
查看药品的交易记录
药局管理人员
检查科室工作管理 根据系统中,医生开出的检查申请,对患者进行检查操作;
患者信息录入系统;
将完成的检查结果,录入到系统中对应患者名下,提供给医生进行诊断参考;
对历史检查结果进行管理;
检查科医生
检验科室工作管理 根据系统中,医生开出的检验申请,对患者进行检验操作;
患者信息录入系统;
将完成的检验结果,录入到系统中对应患者名下,提供给医生进行诊断参考;
对历史检验结果进行管理;
检验科医生
处置科室工作管理 根据系统中,医生开出的处置申请,对患者进行处置操作;
患者信息录入系统;
将完成的处置结果,录入到系统中对应患者名下,提供给医生进行诊断参考;
对历史处置结果进行管理;
处置科医生

1.5 项目技术

image.png
前端

  1. Vue开发前端开发框架

优势:

  • 数据绑定:vue会根据对应的元素进行数据的实时绑定,进行网页及应用的数据渲染 。
  • 组件式开发:通过vue的模块封装,它可以将一个web开发中设计的各种模块进行拆分,变成单独的组件,然后通过数据绑定,调用对应模版组件,同时传入参数。
  1. Element UI

    ElementUI是一款功能强大的组件工具,体现出非常强大的一致性,在使用过程中有清晰的反馈,而且效率高,可控性强。在本次项目中,大部分组件都是由ElementUI实现的
    优势:

  • 样式多样,能够轻松的使页面更加美观。
  • 文档清晰,使用方便。

后端

  1. Springboot+SpringMVC+Spring综合使用

    SpringBoot用来简化Spring应用的初始搭建以及开发过程,可以使开发人员不再需要定义样板化的配置,它默认配置了很多框架的使用方式,使Spring的应用更加简便。
    Spring MVC是一种基于java的框架,实现了Web MVC设计模式的请求驱动类型的轻量框架,能够使编写出更干净、更可管理、并且更易于测试的代码
    Spring框架是一个开放源代码的JavaEE应用程序框架,它在大小与开销方面都是轻量的,可以通过一种称作控制反转的技术促进低耦合,并且提供了面向切面变成的支持,包含并管理了应用对象的配置和生命周期,可以将简单的组件配置组合成复杂的应用
    优势:

  • 搭建项目快,几秒钟就可以搭建完成;支持声明式事务处理
  • 让测试变的简单
  • 让配置变的简单
  • 内嵌容器
  • 方便监控
  1. MyBatis

使用XML描述或注释对象与存储过程或SQL语句耦合,使关系数据库与面向对象应用结合起来更加容易
优势:

  • 简单易学
  • 灵活:Mybatis不会对应用程序或者数据库的现有设计强加任何影响。
  • 解除sql与程序代码的耦合
  1. maven

通过使用maven快速且高频地自动构建项目的所有源码,和实现项目版本依赖。
数据库

  1. MySQL

优势:

  • Mysql性能卓越,服务稳定,很少出现宕机。
  • 开放源代码,自主性,使用成本低
  • 历史悠久,社区用户非常活跃,遇到问题可以寻求帮助。
  • 软件体积小,安装使用简单,并且易于维护

版本控制

  1. Git

一个团队或一个项目组可以在上面建立一个库,通过密匙加入其访问和修改,可以将项目上传在库中,供可查看的人查看,大大减少团队合作一个项目的复杂度
优势:

  • 离线工作。
  • 适合分布式开发,强调个体。
  • 公共服务器压力和数据量都不会太大。
  • 速度快、灵活。

    2、需求分析

    一般性需求

  • 完整正确的门诊流程,为用户提供良好的使用体验

  • 完全基于浏览器的操作模式,安装简单、操作方便,具有良好的系统扩充能力。
  • 灵活的模块需求设计,可根据实训项目周期灵活裁剪。

功能性需求
(1)挂号管理:主要用户是窗口挂号人员,主要包含的功能有现场挂号与退号、收费与退费、患者收费信息的查询与管理、发票信息的查看与重打补打、门诊收费的日结记录与日结查询。
(2)坐诊管理:主要用户为坐诊医生,涉及病案管理、处方药模板管理、处置管理等
(3)检查/检验管理:主要用户为检验科医师,涉及检验/检查申请记录查看、检验详情查看、检查结果录入等。
(4)患者药物信息管理:主要用户为药师,涉及药库信息管理、发药管理、退药管理、发退药信息查看。

2.1 功能分解

根据需求调研,分解业务功能如下

角色 备注
挂号窗口 使用者是窗口挂号人员,主要包含的功能有现场挂号与退号、收费与退费、患者收费信息的查询与管理。
门诊医生 使用者为门诊医生,涉及患者诊疗、开立检查检验项目,开立处方药治疗、开立处置治疗等
检查医生 使用者为检查科医师,涉及检查申请记录查看、检查详情查看、检查结果录入等(医生给患者根据病历要求患者进行的检查项:一般无比对标准,如B超)。
检验医生 使用者为检验科医师,涉及检验申请记录查看、检验详情查看、检验结果录入等。(医生给患者根据病历要求患者进行的检验项:一般有比对标准,如血常规)
处置医生 使用者为处置科室医师,涉及处置申请记录查看、处置详情查看、处置结果录入等。(医生给患者根据病历要求患者进行的处置项:一般有治疗作用,如洗胃)
药房管理 使用者为药师,涉及药库信息管理、发药管理、退药管理、发退药信息查看。

2.2 用例图

根据功能分解,确定项目整体角色和用例如下:
image.png

2.3 流程图

HIS系统流程图-视频讲解.jpg
HIS流程图.png

2.4 原型设计:用户角色和菜单

经过分析,本项目设计6个角色,对应整体菜单如下:

2.4.1 整体菜单

root权限:可以查看所有功能,但是不要进行业务操作,本权限不是业务角色
image.png

2.4.2 详细菜单

根据权限,有6个不同的角色,32个业务功能,不同角色对应不同的业务功能菜单如下:

角色名称 功能菜单

- 挂号收费员
image.png

- 门诊医生
image.png

- 检查医生
image.png

- 检验医生
image.png

- 药房管理员
image.png

- 处置医生
image.png

3、系统设计

3.1 原型设计:主线流程

本部分使用原型工具Axure RP进行页面绘制,配合文档说明,确认每个界面功能。


HIS系统流程图-视频讲解 - 12.jpg

3.1.1 挂号收费:窗口挂号

HIS系统流程图-视频讲解 - 1.jpg
image.png
1. 挂号收费员点击“窗口挂号”菜单;
2.. 系统进入现场挂号页面,自动生成“病历号”;
3. 系统默认显示“看诊日期”为当前日期,午别为当前午别,该信息不可修改;
4. 挂号收费员询问患者挂号级别、挂号科室;
5. 挂号收费员根据患者要求,选择对应的“挂号级别”、“挂号科室”;
6. 系统根据挂号级别显示挂号费;
7. 系统根据挂号级别、挂号科室,读取相应科室、相应挂号级别、当前日期、当前午别的出诊医生;
8. 挂号收费员询问患者是否选择挂号医生;
9. 挂号收费员根据患者要求,选择对应的“医生”;
10. 挂号收费员录入患者基本信息,包括:患者姓名、性别、出生日期、年龄、结算类别、身份证号、家庭住址、是否要病历本;
11. 挂号收费员在录入信息完毕后,单击“挂号”按钮,完成患者挂号;

3.1.2 门诊医生:患者查看

HIS系统流程图-视频讲解 - 2.jpg
image.png
1. 门诊医生登录后,点击导航栏的“患者查看”;
2. 系统进入患者查看页面,顶部显示已经看诊人数和排队人数;
3.显示登录医生对应挂号的患者列表,根据挂号时间排序分页显示;
3. 门诊医生可以输入患者的病历号或姓名,进行“查询”;
4. 系统显示符合条件的患者列表;
5. 门诊医生点击患者姓名后面的“创建病例“,开始看诊;

3.1.3 门诊医生:病历首页

HIS系统流程图-视频讲解 - 3.jpg
image.png
1. 门诊医生点击导航栏的“病历首页”,对”患者查看“页面选择的患者病例进行填写。页面顶部会显示医生选择的患者基本信息。
2.门诊医生根据询问患者,在病历首页中填写:主诉、现病史、现病治疗情况、既往史、过敏史、体格检查;
3. 门诊医生进行初步诊断,选择患者疾病;
4.门诊医生填写检查\检验建议;
5.门诊医生填写完成后,点击保存完成患者病例首页的填写;

3.1.4 门诊医生:检查申请

HIS系统流程图-视频讲解 - 4.jpg
image.png
1. 门诊医生点击“检查申请”
2. 系统进入检查申请页面,在病历首页页面部分,显示该患者基本信息;
3. 门诊医生点击新增项目;
4. 系统弹出新增检查项目页面列表,页面包括检查编码、检查名称、检查规格、单价,门诊医生可以按检查编码和检查名称执行查询;
5. 门诊医生在查询结果中,选中要新增的检查项目前面的复选框,所有项目选中之后,点击“添加”按钮;
6. 系统在检查申请页面,填入医生已经选择的项目;
7. 门诊医生输入检查目的要求、检查部位、备注等;
8. 门诊医生点击“申请提交”;

3.1.5 挂号收费:收费

HIS系统流程图-视频讲解 - 5.jpg
image.png
1. 挂号收费员点击“收费”;
2. 系统进入患者收费页面;
3. 挂号收费员输入患者的“病历号”后点击”搜索“按钮;
4. 系统查询出该患者的基本信息;
5. 挂号收费员确认患者姓名是否正确;
6. 系统查询出该患者本次看诊的待缴费项目,并按项目开立时间时间降序排序;
7. 挂号收费员确认患者本次缴纳哪些项目,选中相应项目前面的复选框;
8. 系统自动计算出本次的缴费金额;
9. 挂号收费员点击“收费结算”按钮,完成收费;

3.1.6 检查管理:检查申请

HIS系统流程图-视频讲解 - 6.jpg
image.png
1. 检查医生登录后,点击导航栏的“检查申请”;
2. 系统进入检查申请查看页面,顶部显示已经检查人数和排队人数;
3.显示等待检查的患者列表;
3. 门诊医生可以输入患者的病历号或姓名,进行“查询”;
4. 系统显示符合条件的患者列表;
5. 门诊医生点击患者姓名后面的“进行检查“,检查登记完成;

3.1.7 检查管理:患者录入

HIS系统流程图-视频讲解 - 7.jpg
image.png
1. 检查医生点击导航栏的“患者录入”,对”检查申请“页面选择的患者的检查项目进行科室和医生的分配。页面顶部会显示医生选择的患者基本信息。
2.系统会显示选择的患者所有等待检查的项目;
3. 检查医生点击对应项目后,表格下方会显示 已选择的检查项目名称;
4.检查医生选择录入自己的科室和姓名,确认检查医生信息;
5.检查医生点击“开始检查”,患者检查录入完成;

3.1.8 检查管理:检查结果录入

HIS系统流程图-视频讲解 - 8.jpg
image.png
1. 检查医生点击导航栏的“检查结果录入”。页面显示患者信息;检查医生可以根据患者病历号和患者姓名,进行搜索患者。
2.检查医生点击患者信息后端的“已完成检查”按钮,会显示该患者所有已经完成的检查项目;
3. 检查医生点击对应项目后,表格下方会显示 已选择的检查项目名称;
4.检查医生选择录入自己的科室和姓名,确认结果录入医生信息;
5.检查医生录入检查结果;
6.检查医生点击“结果提交”完成检查结果录入

3.1.9 门诊医生:看诊记录

image.png
1. 门诊医生点击导航栏的“看诊记录”;
2. 系统进入患者继续看诊选择页面;
3.显示登录医生对应已经看诊的患者列表;
3. 门诊医生可以输入患者的病历号或姓名,进行“查询”;
4. 系统显示符合条件的患者列表;
5. 门诊医生点击患者姓名后面的“更新病例“,开始对已出检查结果的患者继续看诊;

3.1.10 门诊医生:查看检查结果

HIS系统流程图-视频讲解 - 9.jpg

image.png

  1. 门诊医生点击导航栏的“检查结果”,对”看诊记录“页面选择的患者的检查结果进行查看。页面顶部会显示医生选择的患者基本信息。
    2.系统会显示选择的患者的已经出结果的检查项目;
    3. 门诊医生选择检查项目,会看到检查的结果;

    3.1.11 门诊医生:门诊确诊

    image.png
    1. 门诊医生点击导航栏的“门诊确诊”,对”看诊记录“页面选择的患者录入诊断结果和处理意见。
    2. 门诊医生选择“确诊提交”,完成患者的病历确诊部分内容填写;

    3.1.12 门诊医生:开设处方

    HIS系统流程图-视频讲解 - 10.jpg
    image.png
    image.png
    image.png
    1、 门诊医生点击导航栏的“开设处方”,进入处方界面,点击“增加”。
    2、 系统弹出“搜索药品界面”
    3、 门诊医生输入药品信息(药品编码、药品名称等)后,点击“查询”按钮,查询药品信息
    4、 系统显示符合条件的药品列表
    5、 门诊医生选择所需药品,点击确定,添加药品到处方中
    6、 关闭药品选择对话框,界面显示医生已经选择的药品内容。
    7、 门诊医生对药品输入:用法、用量、频次、使用天数、用药嘱托等医嘱信息;输入药品数量
    8、 门诊医生可以多次添加药品或删除药品;添加完药品后,门诊医生点击开立处方,完成处方开立。
    9、 在主界面中,会有处方金额合计,根据数量改变会自动改变
    10、点击每个药品,下拉列表显示药品的详细信息(药品编码、包装单位、生产厂家、药剂类型等)

    3.1.13 药房管理:药房发药

    HIS系统流程图-视频讲解 - 11.jpg
    image.png
    1、 发药员点击导航栏的“药房发药”链接。
    2、 系统查询并在左侧显示待发药患者列表界面,查询条件包括:病历号、患者姓名;默认状态为“未发”(其他状态:已发、已退、全部)
    3、 发药员输入查询信息,点击“查询”
    4、 系统显示符合条件的患者列表
    5、 发药员选择对应患者
    6、 系统显示出该患者的待发药品信息,显示在界面上
    7、 发药员点击“发药”按钮。
    8、 完毕后会提示发药成功的信息。
    9、 发药员给患者药品

3.2 原型设计:其他功能:

HIS系统流程图-视频讲解 - 13.jpg

3.2.1、门诊挂号:退费

image.png

3.2.2、门诊挂号:退号

image.png

3.2.3、门诊挂号:费用记录查询

image.png

3.2.4、门诊医生:开立检验

image.png

3.2.5、门诊医生:开立处置

image.png

3.2.6、检查医生:检查管理

image.png

3.2.7、检验医生:患者叫号

image.png

3.2.8、检验医生:执行检验

image.png

3.2.9、检验医生:录入检验结果

image.png

3.2.10、检验医生:检验管理

image.png

3.2.11、药库管理:退药

image.png

3.2.12、药库管理:药品管理

image.png

3.2.13、药库管理:交易记录

image.png

3.2.14、处置医生:患者叫号

image.png

3.2.15、处置医生:执行处置

image.png

3.2.16、处置医生:录入处置结果

image.png

3.2.17、处置医生:处置管理

image.png

3.3 表设计

3.3.1 实体设计:ER图

根据界面功能,确认实体(ER图)
image.png

3.3.2 表设计

根据ER图和界面原型,确认表字段和关联情况
image.png

3.3.3 表设计文档

数据表整体设计

序号 表中文名 表英文名 表功能说明
1 医院员工表 employee 保存医院的员工信息(主要是医生)
2 科室表 department 医生所在的科室,如:骨外科
3 挂号级别表 regist_level 保存医生挂号等级(例如:专家号、普通号、主任医生号)
4 结算类别表 settle_category 存放患者的结算类别信息,如:自费、医保、新农合等
5 排班表 scheduling 医生是否出诊(按照星期进行排班,如:周三下午、周五上午出诊)
6 患者历次挂号信息表 register 存储患者历次挂号信息
7 检查申请表 check_request 检查申请
8 检验申请表 inspection_request 检验申请
9 处置申请表 disposal_request 处置申请
10 医技项目表 medical_technology 医疗技术项目,包括检查、检验、处置等项目
11 患者病历表 medical_record 医生对患者填写的病例
12 病历首页疾病关联表 medical_record_disease 病例和疾病关联表
13 疾病表 disease 保存疾病信息
14 处方表 prescription 医生开立处方信息
15 药品信息表 drug_info 保存药品信息

1、医院员工表:employee

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
所在科室id deptment_id INT(9) 外键
指向department(_id)_
挂号级别id regist_level_id INT(9) 外键
指向regist_level (ID)
排班id scheduling_id INT(9) 外键
真实姓名 realname VARCHAR(64)


密码 password VARCHAR(64)
生效标记 delmark INT(1)
1 1-生效
0-已删除

2、科室表:department

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
科室编码 dept_code VARCHAR(64)

如:SJNK
科室名称 dept_name VARCHAR(64)

如:神经内科
科室类型 dept_type VARCHAR(64)
生效标记 delmark INT(1)
1 1-正常
0-已删除

3、挂号级别表:regist_level

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
号别编码 regist_code VARCHAR(64)


号别名称 regist_name VARCHAR(64)


挂号费 regist_fee DECIMAL(8,2)


挂号限额 regist_quota INT(5)


显示顺序号 sequence_no INT(3)
生效标记 delmark INT(1)
1 1-正常
0-已删除

4、结算类别表:settle_category

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
类别编码 settle_code VARCHAR(64)


类别名称 settle_name VARCHAR(64)


显示顺序号 sequence_no INT(3)


生效标记 delmark INT(1)
1 1-正常
0-已删除

5、排班表: scheduling

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
排班规则名称 rule_name VARCHAR(64)


星期规则 week_rule VARCHAR(14)

生效标记 delmark INT(1)
1 1-正常
0-已删除

6、患者历次挂号信息表:register

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
病历号 case_number VARCHAR(64)


姓名 real_name VARCHAR(64)


性别 gender VARCHAR(6)

男/女
身份证号 card_number VARCHAR(18)


出生日期 birthdate DATE


年龄 age INT(3)


年龄类型 age_type VARCHAR(6)

年/天
家庭住址 home_address VARCHAR(64)


本次看诊日期 visit_date DATETIME


午别 noon VARCHAR(6)

上午/下午
本次挂号科室ID deptment_id INT(9) 外键
指向department(_ID)_
本次挂号医生ID employee_id INT(9) 外键
指向employee(ID)
本次挂号级别ID regist_level_id INT(9) 外键
指向regist_Level (ID)
结算类别ID settle_category_id INT(9) 外键
指向settle_category(ID)
病历本要否 is_book CHAR(2)

是/否
收费方式 regist_method VARCHAR(10) 现金、银行卡、医保卡、微信、支付宝
挂号金额 regist_money DECIMAL(8,2)
本次看诊状态 visit_state INT(1)

1-已挂号
2-医生接诊
3-看诊结束
4-已退号

7、检查申请表:check_request

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
挂号id register_id INT(9) 外键

医技项目id medical_technology_id INT(9) 外键
目的要求 check_info VARCHAR(512)
检查部位 check_position VARCHAR(255)
开立时间 creation_time datetime
检查人员id check_employee_id INT(9) 外键
结果录入人员id inputcheck_employee_id INT(9) 外键
检查时间 check_time datetime
检查结果 check_result VARCHAR(512)
状态 check_state VARCHAR(64)
备注 check_remark VARCHAR(512)

8、检验申请表:inspection_request

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
挂号id register_id INT(9) 外键

医技项目id medical_technology_id INT(9) 外键
目的要求 inspection_info VARCHAR(512)
检验部位 inspection_position VARCHAR(255)
开立时间 creation_time datetime
检验人员id inspection_employee_id INT(9) 外键
结果录入人员id inputinspection_employee_id INT(9) 外键
检验时间 inspection_time datetime
检验结果 inspection_result VARCHAR(512)
状态 inspection_state VARCHAR(64)
备注 inspection_remark VARCHAR(512)

9、处置申请表:disposal_request

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
挂号id register_id INT(9) 外键

医技项目id medical_technology_id INT(9) 外键
目的要求 disposal_info VARCHAR(512)
处置部位 disposal_position VARCHAR(255)
开立时间 creation_time datetime
处置人员id disposal_employee_id INT(9) 外键
结果录入人员id inputdisposal_employee_id INT(9) 外键
处置时间 disposal_time datetime
处置结果 disposal_result VARCHAR(512)
状态 disposal_state VARCHAR(64)
备注 disposal_remark VARCHAR(512)

10、医技项目表:medical_technology

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
项目编码 tech_code VARCHAR(64)
项目名称 tech_name VARCHAR(64)
规格 tech_format VARCHAR(64)
单价 tech_price DECIMAL(8,2)
类型 tech_type VARCHAR(64)
费用分类 price_type VARCHAR(64)
执行科室 deptment_id INT(9) 外键

11、患者病历表:medical_record

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
挂号ID register_id INT(9) 外键
主诉 readme VARCHAR(512)
现病史 present VARCHAR(512)
现病治疗情况 present_treat VARCHAR(512)
既往史 history VARCHAR(512)
过敏史 allergy VARCHAR(512)
体格检查 physique VARCHAR(512)
检查/检验建议 proposal VARCHAR(512)
注意事项 careful VARCHAR(512)
诊断结果 diagnosis VARCHAR(512)
处理意见 cure VARCHAR(512)

12、病历首页疾病关联表:medical_record_disease

字段名 字段编码 数据类型 键值 默认值 注释
病历id medical_record_id INT(9) 外键

疾病id disease_id INT(9) 外键

13、疾病表:disease

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
疾病助记编码 disease_code VARCHAR(64)


疾病名称 disease_name VARCHAR(255)
国际ICD编码 diseaseICD VARCHAR(64)
疾病所属分类 disease_category VARCHAR(64)

14、处方表:prescription

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
病历id register_id INT(9) 外键
药品id drug_id INT(9) 外键
用法用量频次 drug_usage VARCHAR(255)
数量 drug_number VARCHAR(255)
开立时间 creation_time DATETIME
状态 drug_state VARCHAR(64)

15、药品信息表:drug_info

字段名 字段编码 数据类型 键值 默认值 注释
ID id INT(9) 主键
自增长类型
药品编码 drug_code VARCHAR(255)
药品名称 drug_name VARCHAR(255)
药品规格 drug_format VARCHAR(255)
包装单位 drug_unit VARCHAR(16)
生产厂家 manufacturer VARCHAR(255)
药剂类型 drug_dosage VARCHAR(64)
药品类型 drug_type VARCHAR(64)
药品单价 drug_price DECIMAL(8,2)
拼音助记码 mnemonic_code VARCHAR(255)
创建时间 creation_date DATE

3.4 项目关键状态图

3.4.1 挂号患者状态图

image.png

3.4.2 医生开立检查状态图

image.png

3.4.1 医生开立检验状态图

image.png

3.4.1 医生开立处方状态图

image.png

3.4.1 医生开立处置状态图

image.png

3.5 模块设计

3.5.1 前端模块及页面

  • 挂号收费模块:registration
    • onsite_registratiion 窗口挂号
    • registration_record 窗口退号
    • expense_charge 收费
    • expense_refund 退费
    • expense_manage 费用记录查看
  • 门诊医生模块:physician
    • physician_patient 患者查看
    • 医生诊疗
      • home_medical_record 病历首页
      • check_request 检查申请
      • inspection_request 检验申请
      • physician-history 看诊记录
      • check_results 检查结果查看
      • inspection_results 检验结果查看
      • outpatient_diagnosis 门诊确诊
      • write_prescription 开立处方
      • disposal_request 处置申请
    • expense_query 费用查询
  • 检查医生模块:check
    • check_apply 检查申请
    • check-patient 患者录入
    • check_input 结果录入
    • check-manage 检查管理
  • 检验医生模块:inspection
    • inspection_apply 检验申请
    • inspection_patient 患者录入
    • inspection_input 检验录入
    • inspection_manage 检验管理
  • 药库管理模块:drugstore
    • give_medicine 药房发药
    • drug_medicine 药房退药
    • drug_storage 药库管理
    • tran_history 交易记录
  • 处置医生模块:disposal
    • disposal_apply 处置申请
    • disposal_patient 患者录入
    • disposal_input 处置录入
    • disposal_manage 处置管理

      3.5.2 后端模块

      1、common:通用模块
      2、drugstage:药库管理模块:端口8091
      3、outpatient:门诊模块: 端口8092

4、系统实现

项目在线演示网址:http://39.105.101.77:8080/index.html#/

4.1 服务器端项目

4.1.1.服务器端项目搭建

4.1.1.1.开发工具检查

  1. 开发工具:SpringToolSuite4+(STS)
  2. 检查开发工具的jdk配置:jdk8
  3. 检查maven构建工具的配置:maven3+
  4. 检查开发工具的文件编码配置:utf-8

    4.1.1.2.搭建SpringBoot工程

  5. 工程类型:

创建maven工程
image.png
创建maven模块
image.png

  1. pom.xml文件

hismodules/pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <groupId>com.neuedu</groupId>
  4. <artifactId>hismodules</artifactId>
  5. <version>0.0.1-SNAPSHOT</version>
  6. <packaging>pom</packaging>
  7. <modules>
  8. <module>his-common</module>
  9. <module>his-drugstore</module>
  10. <module>his-outpatient</module>
  11. </modules>
  12. <properties>
  13. <java.version>1.8</java.version>
  14. </properties>
  15. <parent>
  16. <groupId>org.springframework.boot</groupId>
  17. <artifactId>spring-boot-starter-parent</artifactId>
  18. <version>2.2.10.RELEASE</version>
  19. </parent>
  20. <dependencies>
  21. <!-- Spring Boot 核心 :Web容器-->
  22. <dependency>
  23. <groupId>org.springframework.boot</groupId>
  24. <artifactId>spring-boot-starter-web</artifactId>
  25. </dependency>
  26. <!-- Spring Boot 测试 : JUnit -->
  27. <dependency>
  28. <groupId>org.springframework.boot</groupId>
  29. <artifactId>spring-boot-starter-test</artifactId>
  30. </dependency>
  31. <!-- Spring Boot 数据库使用 : MyBatis -->
  32. <dependency>
  33. <groupId>org.mybatis.spring.boot</groupId>
  34. <artifactId>mybatis-spring-boot-starter</artifactId>
  35. <version>2.0.0</version>
  36. </dependency>
  37. <!-- Spring Boot 数据库使用 : MySQL驱动 -->
  38. <dependency>
  39. <groupId>mysql</groupId>
  40. <artifactId>mysql-connector-java</artifactId>
  41. </dependency>
  42. </dependencies>
  43. </project>

his-outpatient/pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <!-- 门诊模块:挂号管理(挂号、退号、收费、退费),医生看诊,对患者进行检查,对患者检验,对患者处置 -->
  4. <parent>
  5. <groupId>com.neuedu</groupId>
  6. <artifactId>hismodules</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. </parent>
  9. <artifactId>his-outpatient</artifactId>
  10. <dependencies>
  11. <!-- 自定义的通用模块:common -->
  12. <dependency>
  13. <groupId>com.neuedu</groupId>
  14. <artifactId>his-common</artifactId>
  15. <version>0.0.1-SNAPSHOT</version>
  16. </dependency>
  17. </dependencies>
  18. </project>

his-drugstore/pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <!-- 药库管理模块:药品管理(增加药品、修改药品、删除药品、查找药品)、给患者发药、给患者退药 -->
  4. <parent>
  5. <groupId>com.neuedu</groupId>
  6. <artifactId>hismodules</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. </parent>
  9. <artifactId>his-drugstore</artifactId>
  10. <dependencies>
  11. <!-- 自定义的通用模块:common -->
  12. <dependency>
  13. <groupId>com.neuedu</groupId>
  14. <artifactId>his-common</artifactId>
  15. <version>0.0.1-SNAPSHOT</version>
  16. </dependency>
  17. </dependencies>
  18. </project>

his-common/pom.xml

  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  2. <modelVersion>4.0.0</modelVersion>
  3. <!-- 通用模块:给业务模块进行支撑 -->
  4. <parent>
  5. <groupId>com.neuedu</groupId>
  6. <artifactId>hismodules</artifactId>
  7. <version>0.0.1-SNAPSHOT</version>
  8. </parent>
  9. <!-- 设置jar包 -->
  10. <packaging>jar</packaging>
  11. <artifactId>his-common</artifactId>
  12. <name>his-common</name>
  13. </project>
  1. 工程目录结构

image.png

  1. SpringBoot入口文件

image.png
image.png

  1. application.properties配置文件: ```properties

    数据库连接配置

    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/his01?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&useUnicode=true&useSSL=false spring.datasource.username=root spring.datasource.password=123456

MyBatis配置

mybatis.mapper-locations=classpath:/mapper/*.xml

设置端口号

server.port=8091

  1. ```properties
  2. # 数据库连接配置
  3. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  4. spring.datasource.url=jdbc:mysql://localhost:3306/his01?serverTimezone=Asia/Shanghai&characterEncoding=UTF-8&useUnicode=true&useSSL=false
  5. spring.datasource.username=root
  6. spring.datasource.password=123456
  7. # MyBatis配置
  8. mybatis.mapper-locations=classpath:/mapper/*.xml
  9. # 设置端口号
  10. server.port=8092

4.1.2.服务器端代码

参考项目源代码。

4.2.前端项目

4.2.1.前端项目搭建

4.2.1.1.开发工具检查

  1. 检查vscode是否安装成功。
  2. 检查npm安装环境: 命令行下输入:npm -v
  3. 检查VueCli安装环境:命令行下输入:vue -V (注意:本工程使用VueCli3版本)

附录:

  1. 安装npm:直接安装node.js (输入 “npm -v” 测试是否安装成功; 输入 node –v 查看node版本)
  2. 全局安装vuecli:npm install -g @vue/cli@3.11
  3. 查看当前安装的vue-cli版本:vue —version 或 vue –V
  4. 卸载旧版本的vue-cli:npm uninstall vue-cli -g
  5. 查看远程仓库中的版本号:npm view @vue/cli versions —json

    4.2.1.2.搭建VueCli工程

  6. 命令行下进入工作空间目录中,输入: vue create hisclient(工程名必须小写)

  7. 选择预设模板:这里选择“Manually select features”(手动选择特征)

image.png

  1. 模块选取:Babel、Router

image.png

  1. 选择是否使用history 形式的路由:选择:N
  2. 将依赖文件放在package.json中:选择:“in package.json”
  3. 是否将当前选择保存以备下次使用:选择:N
  4. 进入创建好的工程目录:cd hisclient
  5. 启动工程:npm run serve
  6. 在浏览器中测试:http://localhost:8080

    4.2.1.3.添加其它依赖及配置文件

  7. 添加element与axios依赖:

npm install element-ui —save
npm install axios —save

4.2.1.4.main.js文件

  1. import Vue from 'vue'
  2. import App from './App.vue'
  3. import router from './router'
  4. import store from './store'
  5. import ElementUI from 'element-ui';
  6. import Axios from 'axios'
  7. import 'element-ui/lib/theme-chalk/index.css';
  8. Vue.config.productionTip = false
  9. Vue.use(ElementUI);
  10. Axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
  11. Vue.prototype.$http = Axios;
  12. new Vue({
  13. router,
  14. store,
  15. render: h => h(App)
  16. }).$mount('#app')

4.2.1.5.index.vue文件

注意:在layout/index.vue文件中,完成项目主界面。

  1. <template>
  2. <!-- 项目主界面 -->
  3. <el-container>
  4. <!-- 主界面的标题栏 -->
  5. <el-header style="background-color: #20A0FF;">
  6. <div style="display:flex;justify-content:space-between">
  7. <div style="display:flex">
  8. <div class="home-title-text" style="width:220px">东软云医院HIS系统</div>
  9. <div class="home-title-icon"><i class="el-icon-s-fold"></i></div>
  10. </div>
  11. <div style="display:flex">
  12. <div class="home-title-img">
  13. <el-image src="logo.png" fit="contain "></el-image>
  14. </div>
  15. <div class="home-title-menu" style="width:150px">
  16. <el-dropdown @command="dropdownClick">
  17. <span class="el-dropdown-link">
  18. {{titleUserName}}<i class="el-icon-arrow-down el-icon--right"></i>
  19. </span>
  20. <el-dropdown-menu slot="dropdown" >
  21. <el-dropdown-item>个人信息</el-dropdown-item>
  22. <el-dropdown-item divided command="logout">退出</el-dropdown-item>
  23. </el-dropdown-menu>
  24. </el-dropdown>
  25. </div>
  26. </div>
  27. </div>
  28. </el-header>
  29. <el-container style="height:1000px">
  30. <el-aside style="background-color: #D3DCE6;" width="240px">
  31. <el-menu default-active="1" class="el-menu-demo" style="background-color: #ECECEC" mode="vertical" router >
  32. <el-submenu :index="''+index" v-for="(item,index) in this.menuList" :key="index"
  33. v-if="!item.hidden && (item.meta.type == dept_type || dept_type == 'root')" >
  34. <template slot="title"><i :class="item.iconCls"></i><span>{{item.name}}</span></template>
  35. <el-menu-item :index="child.path" v-for="(child,cindex) in item['children']" :key="cindex">
  36. <span>{{child.name}}</span>
  37. </el-menu-item>
  38. </el-submenu>
  39. </el-menu>
  40. </el-aside>
  41. <el-main style="background-color: #E9EEF3;">
  42. <router-view/>
  43. </el-main>
  44. </el-container>
  45. </el-container>
  46. </template>
  47. <script>
  48. export default ({
  49. mounted: function(){
  50. this.menuList = this.$router.options.routes;
  51. let loginUser = sessionStorage.getItem("loginUser");
  52. if(loginUser !=null && loginUser.length>0){
  53. loginUser = JSON.parse(loginUser);
  54. this.titleUserName = loginUser.realname;
  55. this.dept_type = loginUser.dept_type;
  56. }
  57. },
  58. methods:{
  59. dropdownClick(commond){
  60. if(commond == "logout"){
  61. sessionStorage.removeItem("loginUser");
  62. sessionStorage.removeItem("Flag");
  63. //退出跳转到指定页面
  64. location.href="http://39.105.101.77:8080/index.html";
  65. }
  66. }
  67. },
  68. data(){
  69. return{
  70. menuList:[],
  71. titleUserName:"东软医生",
  72. dept_type:''//部门类型
  73. }
  74. }
  75. })
  76. </script>
  77. <style scoped>
  78. .home-title-text {
  79. color: #FFFFFF;
  80. font-size: 22px;
  81. margin-top: 15px;
  82. text-align: left;
  83. }
  84. .home-title-icon {
  85. margin-top: 15px;
  86. width: 40px;
  87. font-size: 22px;
  88. }
  89. .home-title-img{
  90. margin-top: 10px;
  91. }
  92. .home-title-menu{
  93. margin-top: 15px;
  94. }
  95. .el-dropdown-link {
  96. cursor: pointer;
  97. color: #FFFFFF;
  98. font-size: 20px;
  99. }
  100. .el-icon-arrow-down {
  101. font-size: 20px;
  102. }
  103. </style>

4.2.1.6.路由index.js文件

  1. import Vue from 'vue'
  2. import VueRouter from 'vue-router'
  3. import Layout from '../layout/index.vue'
  4. import Login from '../views/Login.vue'
  5. Vue.use(VueRouter)
  6. const routes = [
  7. {
  8. path: '/',
  9. name: 'Login',
  10. hidden:true,
  11. component: Login,
  12. meta: {
  13. isLogin: false
  14. }
  15. },{
  16. path: '/login',
  17. name: 'Login',
  18. hidden:true,
  19. component: Login,
  20. meta: {
  21. isLogin: false
  22. }
  23. },{
  24. path: '/home',
  25. name: 'Layout',
  26. hidden:true,
  27. component: Layout,
  28. meta: {
  29. isLogin: true
  30. }
  31. },{
  32. path: '/',
  33. name: '挂号收费',
  34. component: Layout,
  35. iconCls:"el-icon-document",
  36. meta: {
  37. type: "财务"
  38. },
  39. children:[
  40. {
  41. path: '/onsite-registration',
  42. name: '窗口挂号',
  43. component: () => import('../views/registration/onsite_registration.vue'),
  44. meta: {
  45. isLogin: true
  46. }
  47. },
  48. {
  49. path: '/registration-record',
  50. name: '窗口退号',
  51. component: () => import('../views/registration/registration_record.vue'),
  52. meta: {
  53. isLogin: true
  54. }
  55. },
  56. {
  57. path: '/expense-charge',
  58. name: '收费',
  59. component: () => import('../views/registration/expense_charge.vue'),
  60. meta: {
  61. isLogin: true
  62. }
  63. },
  64. {
  65. path: '/expense-refund',
  66. name: '退费',
  67. component: () => import('../views/registration/expense_refund.vue'),
  68. meta: {
  69. isLogin: true
  70. }
  71. },
  72. {
  73. path: '/expense-manage',
  74. name: '费用记录查询',
  75. component: () => import('../views/registration/expense_manage.vue'),
  76. meta: {
  77. isLogin: true
  78. }
  79. },
  80. ]
  81. },{
  82. path: '/',
  83. name: '门诊医生',
  84. component: Layout,
  85. iconCls:"el-icon-user",
  86. meta: {
  87. type: "门诊"
  88. },
  89. children:[
  90. {
  91. path: '/physician-patient',
  92. name: '患者查看',
  93. component: () => import('../views/physician/physician_patient.vue'),
  94. meta: {
  95. isLogin: true
  96. }
  97. },
  98. {
  99. path: '/home_medical_record',
  100. name: '医生诊疗:病历首页',
  101. component: () => import('../views/physician/patient/home_medical_record.vue'),
  102. meta: {
  103. isLogin: true
  104. }
  105. },
  106. {
  107. path: '/check_request',
  108. name: '医生诊疗:检查申请',
  109. component: () => import('../views/physician/patient/check_request.vue'),
  110. meta: {
  111. isLogin: true
  112. }
  113. },
  114. {
  115. path: '/inspection_request',
  116. name: '医生诊疗:检验申请',
  117. component: () => import('../views/physician/patient/inspection_request.vue'),
  118. meta: {
  119. isLogin: true
  120. }
  121. },
  122. {
  123. path: '/physician-history',
  124. name: '看诊记录',
  125. component: () => import('../views/physician/physician_history.vue'),
  126. meta: {
  127. isLogin: true
  128. }
  129. },
  130. {
  131. path: '/check_results',
  132. name: '医生诊疗:检查结果',
  133. component: () => import('../views/physician/patient/check_results.vue'),
  134. meta: {
  135. isLogin: true
  136. }
  137. },
  138. {
  139. path: '/inspection_results',
  140. name: '医生诊疗:检验结果',
  141. component: () => import('../views/physician/patient/inspection_results.vue'),
  142. meta: {
  143. isLogin: true
  144. }
  145. },
  146. {
  147. path: '/outpatient_diagnosis',
  148. name: '医生诊疗:门诊确诊',
  149. component: () => import('../views/physician/patient/outpatient_diagnosis.vue'),
  150. meta: {
  151. isLogin: true
  152. }
  153. },
  154. {
  155. path: '/write_prescription',
  156. name: '医生诊疗:开设处方',
  157. component: () => import('../views/physician/patient/write_prescription.vue'),
  158. meta: {
  159. isLogin: true
  160. }
  161. },
  162. {
  163. path: '/disposal_request',
  164. name: '医生诊疗:处置申请',
  165. component: () => import('../views/physician/patient/disposal_request.vue'),
  166. meta: {
  167. isLogin: true
  168. }
  169. },
  170. {
  171. path: '/expense_query',
  172. name: '医生诊疗:费用查询',
  173. component: () => import('../views/physician/patient/expense_query.vue'),
  174. meta: {
  175. isLogin: true
  176. }
  177. },
  178. ]
  179. },{
  180. path: '/',
  181. component: Layout,
  182. name: '检查管理',
  183. iconCls: 'el-icon-camera',
  184. meta: {
  185. type: "检查"
  186. },
  187. children: [
  188. {
  189. path: '/check-apply',
  190. name: '检查申请',
  191. component: () => import('../views/check/check_apply.vue'),
  192. meta: {
  193. isLogin: true
  194. }
  195. },{
  196. path: '/check-patient',
  197. name: '患者录入',
  198. component: () => import('../views/check/check_patient.vue'),
  199. meta: {
  200. isLogin: true
  201. }
  202. },{
  203. path: '/check-input',
  204. name: '检查结果录入',
  205. component: () => import('../views/check/check_input.vue'),
  206. meta: {
  207. isLogin: true
  208. }
  209. },{
  210. path: '/check-manage',
  211. name: '检查管理',
  212. component: () => import('../views/check/check_manage.vue'),
  213. meta: {
  214. isLogin: true
  215. }
  216. }
  217. ]
  218. },{
  219. path: '/',
  220. component: Layout,
  221. name: '检验管理',
  222. iconCls: 'el-icon-headset',
  223. meta: {
  224. type: "检验"
  225. },
  226. children: [
  227. {
  228. path: '/inspection-apply',
  229. name: '检验申请',
  230. component: () => import('../views/inspection/inspection_apply.vue'),
  231. meta: {
  232. isLogin: true
  233. }
  234. },{
  235. path: '/inspection-patient',
  236. name: '患者录入',
  237. component: () => import('../views/inspection/inspection_patient.vue'),
  238. meta: {
  239. isLogin: true
  240. }
  241. },{
  242. path: '/inspection-input',
  243. name: '检验结果录入',
  244. component: () => import('../views/inspection/inspection_input.vue'),
  245. meta: {
  246. isLogin: true
  247. }
  248. },{
  249. path: '/inspection-manage',
  250. name: '检验管理',
  251. component: () => import('../views/inspection/inspection_manage.vue'),
  252. meta: {
  253. isLogin: true
  254. }
  255. }
  256. ]
  257. },{
  258. path: '/',
  259. component: Layout,
  260. name: '药房管理',
  261. iconCls: 'el-icon-wallet',
  262. meta: {
  263. type: "药房"
  264. },
  265. children: [
  266. {
  267. path: '/give-medicine',
  268. name: '药房发药',
  269. component: () => import('../views/drugstore/give_medicine.vue'),
  270. meta: {
  271. isLogin: true
  272. }
  273. },{
  274. path: '/refund_medicine',
  275. name: '药房退药',
  276. component: () => import('../views/drugstore/refund_medicine.vue'),
  277. meta: {
  278. isLogin: true
  279. }
  280. },{
  281. path: '/drug-storage',
  282. name: '药库管理',
  283. component: () => import('../views/drugstore/drug_storage.vue'),
  284. meta: {
  285. isLogin: true
  286. }
  287. },{
  288. path: '/tran-history',
  289. name: '交易记录',
  290. component: () => import('../views/drugstore/tran_history.vue'),
  291. meta: {
  292. isLogin: true
  293. }
  294. }
  295. ]
  296. },{
  297. path: '/',
  298. component: Layout,
  299. name: '处置管理',
  300. iconCls: 'el-icon-first-aid-kit',
  301. meta: {
  302. type: "处置"
  303. },
  304. children: [
  305. {
  306. path: '/disposal-apply',
  307. name: '处置申请',
  308. component: () => import('../views/disposal/disposal_apply.vue'),
  309. meta: {
  310. isLogin: true
  311. }
  312. },{
  313. path: '/disposal-patient',
  314. name: '患者录入',
  315. component: () => import('../views/disposal/disposal_patient.vue'),
  316. meta: {
  317. isLogin: true
  318. }
  319. },{
  320. path: '/disposal-input',
  321. name: '处置录入',
  322. component: () => import('../views/disposal/disposal_input.vue'),
  323. meta: {
  324. isLogin: true
  325. }
  326. },{
  327. path: '/disposal-manage',
  328. name: '处置管理',
  329. component: () => import('../views/disposal/disposal_manage.vue'),
  330. meta: {
  331. isLogin: true
  332. }
  333. }
  334. ]
  335. }
  336. ]
  337. const router = new VueRouter({
  338. routes
  339. })
  340. export default router

4.2.2.前端代码

参考项目源代码。