首页 > 编程语言 >基于微信小程序社区老年人健康医疗信息服务平台设计与实现

基于微信小程序社区老年人健康医疗信息服务平台设计与实现

时间:2023-12-09 12:07:43浏览次数:43  
标签:Map service map 预约 微信 request 用户 服务平台 老年人


作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师

主要内容:Java项目开发、Python项目开发、大学数据和AI项目开发、单片机项目设计、面试技术整理、最新技术分享

收藏点赞不迷路  关注作者有好处

文末获得源码

 项目编号:BS-XCX-023

一,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

开发技术:前端微信小程序+后台Java开发(Springboot+Vue)

二,项目简介

本课题主要设计关于社区老年人健康医疗信息服务平台,实现对社区老人的健康和医疗信息的整合,为社区养老提供更好的服务。中国目前已经进入人口老龄化的阶段,60岁以上老人人口占比高达18%以上,随着家庭子女的减少,社区养老会逐渐演变成日后养老的主流趋势。而对于老人来讲,个人身心健康的发展以及医疗职障的实行是养老中的关键。基于这样一种大背景,本次开发设计了针对社区老人使用的健康医疗信息服务平台,对解决社区老人的健康和医疗的需求,有一定的帮助。

对于本次设计的社区老年人健康医疗信息服务平台来讲,主要是通过软件开发技术来开发和实现一个基于微信小程序形式的老人健康和医疗服务系统,使得社区的老年人用户可以通过手机微信小程序进行注册登录,完成在线健康体检预约、体检结果的档案查询,完成在线就诊预约、个人病历信息的查询,可以在线查询健康养生的相关知识信息,实现在线咨询,在线预约志工的功能。同时为平台运营人员提供了后台数据服务和管理的基本功能,实现对人员和健康医疗信息的数据管理。

本次系统的的开发设计要技术上主要运用JAVA后台开发技术和微信小程序前端开发技术共同开发实现,采用前后端分离的方式来开发实现。系统提供了供前端老人用户使用的前端操作界面,以及提供后台管理员使用的后台管理界面,后台服务接口采用SpringBoot框架技术开发实现,同时集成Mybatis-plus 持久层框架完成数据持久化,业务数据存储采用MYSQL5.7进行数据存储,后台管理的前端页面使用Vue框架和ElementUI组件布局,基于Nodejs运行。系统功能完整,界面简洁大方,适合老年人使用。

社区老年人健康医疗信息服务平台前端用户的操作用例图如下图2.1所示:

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_02编辑

社区老年人健康医疗信息服务平台的管理用户登录系统后可以实现的相关操作用例如下图2.2所示:

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_03

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_04编辑

概要设计部分主要是展示一下本系统的基本抽象设计,通过展示系统功能模块设计和数据库概念模型 ,来展示一下系统需求分析的结果,简单来讲,概要设计就是对用户需求分析一个抽象层面的体现。

本课题是社区老年人健康医疗信息服务平台,通过走访大量的社区工作人员,阅读大量文献并参考同类的信息平台,来分析系统的基本功能性需求。经过分析确定系统的用户主要分为前端使用用户和后台管理用户两类,前端用户的主要功能包含有:用户在线注册与登录、在线预约体检、就诊预约、公告信息的查看、养生信息的浏览查看以及个人中心管理。后台管理用户的主要功能包含有:用户信息管理模块、个人信息管理模块、业务数据信息管理、养生知识信息管理、数据统计信息等。

社区老年人健康医疗信息服务平台具体的系统功能结构图如下图3.3所示:

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序健康管理_05

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_06编辑

图3.3系统功能架构

三,系统展示

4.1.1 用户注册登录

社区老年人健康医疗信息服务平台的前端用户可以在系统平台提供的注册页面进行会员用户注册操作,用户注册后可以进行相应的登录,登录认证通过后可以在线进行进行相应的操作,比如在线评论、在线预约、查看个人中心等,这些模块操作都必须在用户登录认证后才可以进行,用户注册如图4.1所示:[1] 

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序健康管理_07

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_08编辑

图4.1 用户注册

用户注册成后可以在前端的登录页面输入注册的账户和密码进行登录,用户输入账户密码后提交数据后台服务接口登录接口来进行处理,后台服务接口接受到用户账户和密码后查询数据库进行验证,验证通过后即可进入系统平台,系统会记录用户认证的Token令牌到数据库,以作为后期操作的认证标识。具体的登录流程图如下图4.2所示:

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_09

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_10编辑

图4.2 用户登录流程

   前端用户登录的界面展示如下图4.3所示。

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_11

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_12编辑

图4.3 用户登录界面

4.1.2 健康养生列表展示

本平台开发设计时除了完成在线预约体检、预约就诊的核心业务功能外,还发布了健康养老的资讯信息,用户登录或以游客的身份均可以在线进行健康养老信息的浏览,同时在详情页面还可以进行收藏和点赞的互动操作,也可以在线对健康养老信息进行评论操作。同时在进行健康养老浏览时还可以根据条件进行筛选,并根据指定条件进行排序操作,具体功能实现如下图4.4、4.5所示。

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_13

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_14编辑

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序健康管理_15

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_16编辑

图4.4 健康养老列表展示                         图4.5 健康养老详情展示

4.1.3 体检预约

社区老年人健康医疗信息服务平台为用户提供了一个在线预约体检的功能,老人登陆本平台后,可以根据系统推荐的医院进行体检预约,填写完预约信息后提交可以生成预约单,具体在线预约如下图4.6所示:

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序健康管理_17

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序健康管理_18编辑

图4.6 在线预约



模块实现加入代码

模块实现图片过多,简化

4.1.4 就诊预约模块

社区老年人健康医疗信息服务平台用户登录后,可以浏览医生信息,并在医生详情里点击在线预约进行就诊预约操作,填写相关的预约信息提交生成就诊预约单,具体如下图4.7、4.8所示:

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_19

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_20编辑

图4.7 医生详情查看

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_21

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序健康管理_22编辑

图4.8 就诊预约

4.1.5 在线咨询

老人用户登陆本平台后,可以点击在线咨询按钮,进入在线咨询页面,填写完相关的咨询信息后提交,生成咨询记录,后台管理员可以查看并回复,具体展示如下图4.9所示:

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_23

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_24编辑

图4.9 在线预约

4.1.6 志工预约

志工预约的功能主要是为了提供上门照料老人的服务,老人登陆系统后可以在线查看志工信息,并点击预约志工后填写预约的具体信息,生成志工预约信息单,具体展示如下图4.10、图4.11所示:

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_25

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_26编辑

图4.10 志工详情

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_27

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_28编辑

图4.11 志工预约

4.1.7 个人中心

老人用户登录平台后可以在个人中心管理自己的个人信息,收藏信息,预约信息,健康档案信息以及查看自己的收藏信息,具体展示如下图4.12所示:

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_29

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_30编辑

图4.12 个人中心管理

4.2.1用户登录

社区老年人健康医疗信息服务平台的平台管理员,可以根据分配的管理员账户进行在线登录,实现信息数据的在线管理,平台管理员的操作权限相对较大,可以管理整个平台的业务数据,所以必须要经过严格认证后方可进入后台进行操作,具体如下图4.13所示:

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_31

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序健康管理_32编辑

图4.13 后台用户登录

后台用户登录的代码实现和前端用户的代码实现是一样的,本系统设计时是将前端用户和平台管理员存储在一个用户表中,能过身份来进行区别,所以在登录时使用的是同一个验证逻辑。

4.2.2 用户管理

后台的用户管理模块主要为管理平台用户而设计的管理模块,此模块分为管理员管理和老人用户管理,以及志工用户管理,在此操作界面可以根据用户名来查询用户信息,采用模糊查询的匹配方式实现,可以实现在线添加用户信息,对用户信息进行修改和删除和密码重置等操作,具体展示如下图4.14、4.15、4.16所示:

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_33

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_34编辑

图4.14 管理员用户管理

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序健康管理_35

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_36编辑

图4.15 老人用户管理

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_37

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_38编辑

图4.16 志工用户管理

4.2.3数据统计管理

管理员用户登陆后台进首后台管理首页,可以查看对于平台中体检预约和就诊预约的图形报表统计,采用Echarts组件来实现的线状图形报表展示,具体展示如图4.17所示:

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_39

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_40编辑

图4.17 数据统计

四,核心代码展示

package com.project.demo.controller.base;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.project.demo.service.base.BaseService;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import javax.persistence.Query;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 */
@Slf4j
public class BaseController<E, S extends BaseService<E>> {

    @Setter
    protected S service;


    @PostMapping("/add")
    @Transactional
    public Map<String, Object> add(HttpServletRequest request) throws IOException {
        service.insert(service.readBody(request.getReader()));
        return success(1);
    }

    @Transactional
    public Map<String, Object> addMap(Map<String,Object> map){
        service.insert(map);
        return success(1);
    }

    @PostMapping("/set")
	@Transactional
    public Map<String, Object> set(HttpServletRequest request) throws IOException {
        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
        return success(1);
    }


    @RequestMapping(value = "/del")
    @Transactional
    public Map<String, Object> del(HttpServletRequest request) {
        service.delete(service.readQuery(request), service.readConfig(request));
        return success(1);
    }

    @RequestMapping("/get_obj")
    public Map<String, Object> obj(HttpServletRequest request) {
        Query select = service.select(service.readQuery(request), service.readConfig(request));
        List resultList = select.getResultList();
        if (resultList.size() > 0) {
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("obj",resultList.get(0));
            return success(jsonObject);
        } else {
            return success(null);
        }
    }


    @RequestMapping("/get_list")
    public Map<String, Object> getList(HttpServletRequest request) {
        Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));
        return success(map);
    }

    @RequestMapping("/list_group")
    public Map<String, Object> listGroup(HttpServletRequest request) {
        List<Map<String,Object>> list = service.selectToList(service.readQuery(request), service.readConfig(request));
        Map<String,Object> map = new HashMap<>();
        map.put("list",list);
        Map<String,Object> result = new HashMap<>();
        result.put("result",map);
        return result;
    }

    @RequestMapping("/bar_group")
    public Map<String, Object> barGroup(HttpServletRequest request) {
        Map<String, Object> map = service.selectBarGroup(service.readQuery(request), service.readConfig(request));
        return success(map);
    }

    @RequestMapping(value = {"/count_group", "/count"})
    public Map<String, Object> count(HttpServletRequest request) {
        Query count = service.count(service.readQuery(request), service.readConfig(request));
        return success(count.getResultList());
    }

    @RequestMapping(value = {"/sum_group", "/sum"})
    public Map<String, Object> sum(HttpServletRequest request) {
        Query count = service.sum(service.readQuery(request), service.readConfig(request));
        return success(count.getResultList());
    }

    @RequestMapping(value = {"/avg_group", "/avg"})
	public Map<String, Object> avg(HttpServletRequest request) {
        Query count = service.avg(service.readQuery(request), service.readConfig(request));
        return success(count.getResultList());
    }


    @PostMapping("/upload")
    public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
        log.info("进入方法");
        if (file.isEmpty()) {
            return error(30000, "没有选择文件");
        }
        try {
            //判断有没路径,没有则创建
            String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
            File targetDir = new File(filePath);
            if (!targetDir.exists() && !targetDir.isDirectory()) {
                if (targetDir.mkdirs()) {
                    log.info("创建目录成功");
                } else {
                    log.error("创建目录失败");
                }
            }
//            String path = ResourceUtils.getURL("classpath:").getPath() + "static/upload/";
//            String filePath = path.replace('/', '\\').substring(1, path.length());
            String fileName = file.getOriginalFilename();
            File dest = new File(filePath + fileName);
            log.info("文件路径:{}", dest.getPath());
            log.info("文件名:{}", dest.getName());
            file.transferTo(dest);
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("url", "/api/upload/" + fileName);
            return success(jsonObject);
        } catch (IOException e) {
            log.info("上传失败:{}", e.getMessage());
        }
        return error(30000, "上传失败");
    }

    public Map<String, Object> success(Object o) {
        Map<String, Object> map = new HashMap<>();
        if (o == null) {
            map.put("result", null);
            return map;
        }
        if (o instanceof List) {
            if (((List) o).size() == 1) {
               o =  ((List) o).get(0);
                map.put("result", o);
            }else {
                String jsonString = JSONObject.toJSONString(o);
                JSONArray objects = service.covertArray(JSONObject.parseArray(jsonString));
                map.put("result", objects);
            }
        } else if (o instanceof Integer || o instanceof String) {
            map.put("result", o);
        } else {
            String jsonString = JSONObject.toJSONString(o);
            JSONObject jsonObject = JSONObject.parseObject(jsonString);
            JSONObject j = service.covertObject(jsonObject);
            map.put("result", j);
        }
        return map;
    }

    public Map<String, Object> error(Integer code, String message) {
        Map<String, Object> map = new HashMap<>();
        map.put("error", new HashMap<String, Object>(4) {{
            put("code", code);
            put("message", message);
        }});
        return map;
    }
}

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_41

五,相关作品展示

基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目

基于Nodejs、Vue等前端技术开发的前端实战项目

基于微信小程序和安卓APP应用开发的相关作品

基于51单片机等嵌入式物联网开发应用

基于各类算法实现的AI智能应用

基于大数据实现的各类数据管理和推荐系统

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_42

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_43编辑

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_44

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_45编辑

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_46

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_47编辑

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_48

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_49编辑

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_50

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_51编辑

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_52

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_53编辑

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_54

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_微信小程序毕业设计_55编辑

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序健康管理_56

基于微信小程序社区老年人健康医疗信息服务平台设计与实现_小程序医疗_57编辑



标签:Map,service,map,预约,微信,request,用户,服务平台,老年人
From: https://blog.51cto.com/u_16147814/8746571

相关文章

  • uniapp 微信小程序使用canvas
    微信小程序基础库大于2.9.0后,canvas(画布)支持一套新Canvas2D接口(需指定type属性),同时支持同层渲染,原有接口不再维护。在这种情况下使用原有接口会报错,报错例如:1、使用ctx.draw()会报错:drawisnotafunction,原因:新版Canvas2D接口没有draw方法2、使用ctx.setfillStyle......
  • 记录--优雅解决uniapp微信小程序右上角胶囊菜单覆盖问题
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言大家好,今天聊一下在做uniapp多端适配项目,需要用到自定义导航时,如何解决状态栏塌陷及导航栏安全区域多端适配问题,下文只针对H5、APP、微信小程序三端进行适配,通过封装一个通用高阶组件包裹自定义导航栏内容,主......
  • 基于个人微信号的机器人的开发
    简要描述:设置好友权限本接口修改成功后手机需退出后台,重新打开手机方可看到更改请求URL:http://域名地址/setFriendPemission请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是String微信实列IDwcId是String好友微信i......
  • 实现个人微信机器人的开发
    简要描述:修改好友备注请求URL:http://域名地址/modifyRemark请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是string登录实例标识wcId是string好友微信idremark是string好友......
  • 微信公众号网页中打开高德地图
    toDaohang(point){letthat=this//打开高德Dialog.confirm({title:'',message:'打开高德地图',}).then(()=>{letstr=[]if(point!=''){str=p......
  • 分享一个微信红包封面过审方法
    大家好,我是小悟兄弟们,已经12月份了,今年的最后一个月,距离过年还有两个月左右,如果你需要制作微信红包封面,我建议你现在就可以着手了。一方面,临近春节,会有很多人在制作红包封面,审核时长就会比较久。另一方面,最重要的是,制作一款心仪的红包封面,到审核通过,这个过程不是那么尽如人意的,是持......
  • 私域最全养号攻略---微信
    微信号的使用规则:注册新微信、微信实名认证、主动添加好友、面对面建群、被动添加好友、进群限制、朋友圈限制、好友上限微信权重加分规则:基础信息是否完整、注册时间、微信使用行为、微信权重扣分规则:使用的环境是否正常、部分行为会导致权重分扣减、违规导致扣减权重分微信的3个......
  • 基于vue2开发的html5页面实现微信分享卡片(微信好友+朋友圈+qq好友+qq空间)
    首先附上文档链接:1.微信官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#1112.免费生成二维码的草料官网:https://cli.im/text/other 需求:在浏览器分享链接时携带用户id(因为是拉人活动,需要给用户积分),并且在微信中分享为卡片模式 具体......
  • 微信号上传附件小程序
    微附件是一个旨在简化公众号附件管理的实用工具。它为运营人员提供了一个轻松上传和管理多种文件格式(包括Word、Excel、PPT、PDF、TXT等)的平台,并使得用户能够直接下载这些文件。鉴于微信公众号本身并不内置此类功能,微附件的应用因此变得极为重要。首先,要访问微附件的官方网页,您可以......
  • 微信如何设置自动通过好友请求后自动回复?
    微信设置自动回复有什么好处?1、可以提高沟通效率。我们不可能24小时看着微信的,为了避免耽误没有及时通过和回复对方的微信,可以设置自动回复,这样就不会因为长时间没有回复而产生误解或不满。2、可以节省时间和精力。如果经常收到类似的询问或回复,通过设置自动回复,可以避免重复回答,从......