计算机毕业设计hadoop+spark+hive知识图谱医生推荐系统 医生数据分析可视化大屏 医生爬虫 医疗可视化 医生大数据 机器学习 大数据毕业设计

发布于:2024-06-28 ⋅ 阅读:(11) ⋅ 点赞:(0)

测试过程及结果

本次对于医生推荐系统测试通过手动测试的方式进行了两轮测试。

(1)第一轮测试中执行了个20个测试用例,通过16个,失败4个,其中属于严重缺陷1个,属于一般缺陷3个。

(2)第二轮测试中执行了10个测试用例,通过9个,失败1个,其中属于严重缺陷0个,一般缺陷1个。

测试结论及改进

医生推荐系统共进行了两轮具体测试,在第一轮测试中发现了一些错误,通过步骤重现分析属于逻辑错误还是编码错误后进行具体修改,修改成功后再次进行新一轮的测试验证通过对比实测结果与预期结果,重新进行修改测试就测试到的问题而言,绝大多数是由于系统代码编写产生的错误,因此重新进行修改可以消除错误。在整体更改之后,虽然仍存在着对系统运行不影响的问题,但是该系统目前已基本解决求医难的问题,满足了医生和患者用户的需求

在该系统测试阶段,我们遵照最少用例测试最多错误的原则,遵循全面覆盖功能点,并避免系统在配置资源方面的冗余。

7结束语

医生推荐系统是根据患者网上求医难、信息适用性差的需求而开发的一款系统。可以及时有效的解答患者的健康问题、方便用户浏览健康资讯,还可以使医生的个人品牌得到宣传和实现。

本文从分析研究背景、内容和意义出发,首先分析了在互联网使用和信息大爆炸的当代,患者求医过程中遇到的各种不便与限制医生进一步发展的原因,然后从技术、经济和操作三个方面进行系统的可行性分析,确定系统是否可行。接着,进一步分析游客、患者用户、医生用户和管理员这四类用户的用户需求,并根据用户需求绘制四类用户各自的用例图,然后进行医生推荐系统的数据建模,通过绘制医生推荐系统的数据流图,列出对应的数据字典。接着,进行从系统的总体结构到具体功能模块的设计,按照系统实体与实体之间的联系绘制E-R图,并转换为逻辑结构设计。最后,根据前面的分析设计进行系统实施与测试,使用C#语言在Visual Studio 2008中编写代码和测试,最终得到满足用户需求的医生推荐系统。

医生推荐系统虽然基本实现预期目标,能够为用户提供在线问诊、医生查找、浏览健康资讯等功能,但目前仍存在一些问题,如商业价值不高,系统缺乏充值操作,还有消息功能不够完善等,需要随着用户的使用不断更新完善才能更好的满足用户需求


参考文献

  1. 何惠茹.基于推理算法的导医系统设计与实现[D].安徽:安徽大学,2016.
  2. 刘泽田,金函琪,付瑶,孙钰明,李河.基于Hadoop的医疗云存储与医生推荐系统的研究与实现[J].数字技术与应用,2017(8):63-65.
  3. 吴信东,叶明全,胡东辉,吴共庆,胡学钢,王浩.普适医疗信息管理与服务的关键技术与挑战[J].计算机学报,2012,35(5):827-845.
  4. 李嘉政.计算机软件技术开发应用分析[J].中国战略新兴产业,2018(4):108.
  5. Anna E. Ordóñez,Pamela Y. Collins. Advancing Research to Action in Global Child Mental Health[J]. Child and Adolescent Psychiatric Clinics of North America,2015,24(4):679-697.
  6. 陈庆荣.基于B/S模式应用的研究与设计[J].福建电脑,2018,34(2):125-126.
  7. 沈被娜,刘祖照,姚晓冬.计算机软件技术基础[M].北京:清华大学出版社,2000.
  8. 赵春玲.NET平台下开发三层架构WinForm应用程序简介[J].信息技术与信息化,2010,4:33-35.
  9. 江红,余青松.C#.NET程序设计教程[M].北京:清华大学出版社,2010.
  10. (美)斯泰尔曼.Head First C#[M].北京:中国电力出版社,2010.
  11. (美)Jason N. Gaylord.ASP.NET 4.5高级编程(第8版)[M].北京:清华大学出版社,2014.
  12. 刘天印,周松林,张帆,张兆春.基于ASP.NET的实验室管理系统的设计及Web编程技术[J].黄石高等专科学校学报,2004,20(4):42-45.
  13. (美)Jeffer R.Shapiro.SQL Server 2005参考大全.[M].北京:清华大学出版社,2016.
  14. 祁新安,候清江.SQL Server数据库的运用研究[J].制造业自动化,2013,32(12):2-3.
  15. 王珊,萨师煊.数据库系统概论[M].北京:人民邮电出版社,2011.
  16. 易建勋.计算机网络设计[M].北京:人民邮电出版社,2014.
  17. Zhengxing Huang,Xudong Lu,Huilong Duan,Chenhui Zhao.Collaboration-based medical knowledge recommendation[J] . Artificial Intelligence In Medicine . 2012,1: 13-24.

核心算法代码分享如下:

package com.sql

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.types._
import org.junit.Test

import java.util.Properties

class DoctorSpark2024 {
  val spark = SparkSession.builder()
    .master("local[12]")
    .appName("医生大数据Spark分析2024")
    .getOrCreate()
  val doctors_schema = StructType(
    List(
      StructField("name", StringType),
      StructField("views", FloatType),
      StructField("hospital",StringType),
      StructField("department", StringType),
      StructField("gaode_province", StringType),
      StructField("gaode_city",StringType),
      StructField("gaode_district", StringType),
      StructField("title", StringType),
      StructField("disease", StringType)

    )
  )

  val doctors_df = spark.read.option("header", "false").schema(doctors_schema).csv("hdfs://bigdata:9000/doctor2024/doctors/doctors.csv")



  @Test
  def init(): Unit = {
   doctors_df.show()
  }

//指标5  热门医生Top10
  @Test
  def tables05(): Unit = {
    doctors_df.createOrReplaceTempView("ods_doctors")
    val df2 = spark.sql(
      """
            select hospital,name,max(views) num
            from ods_doctors
            group by hospital,name
            order by num desc
            limit 10
    """)
    df2
//      .show(50)
     .coalesce(1)
      .write
      .mode("overwrite")
      .option("driver", "com.mysql.cj.jdbc.Driver")
      .option("user", "root")
      .option("password", "123456")
      .jdbc(
        "jdbc:mysql://bigdata:3306/hive_doctor?useSSL=false",
        "tables05",
        new Properties()
      )
  }

  //指标6  科室数量Top10
  @Test
  def tables06(): Unit = {
    doctors_df.createOrReplaceTempView("ods_doctors")
    val df2 = spark.sql(
      """
          select department,count(distinct name) num
          from ods_doctors
          group by department
          order by num desc
          limit 10
    """)
    df2
      //      .show(50)
      .coalesce(1)
      .write
      .mode("overwrite")
      .option("driver", "com.mysql.cj.jdbc.Driver")
      .option("user", "root")
      .option("password", "123456")
      .jdbc(
        "jdbc:mysql://bigdata:3306/hive_doctor?useSSL=false",
        "tables06",
        new Properties()
      )
  }



}