医院信息化与智能化系统(14)

医院信息化与智能化系统(14)

这里只描述对应过程,和可能遇到的问题及解决办法以及对应的参考链接,并不会直接每一步详细配置
如果你想通过文字描述或代码画流程图,可以试试PlantUML,告诉GPT你的文件结构,让他给你对应的代码

预约挂号微服务模块搭建

前端知识点补充,此章节不会详细讲具体前端的每个知识点

1、查询医院 接口

与上传医院 接口类似,在ApiController内创建方法,指定@PostMapping路径,下面只描述逻辑。

通过 HttpServletRequest request获取传递过来的医院编号签名,并判断签名是否一致;

调用getByHoscode方法实现根据hoscode查询,该方法在HospitalServiceImpl定义。其方法体就是内部调用getHospitalByHoscode方法,这个方法是Spring Data提供的。

完成的测试结果是:
在这里插入图片描述

2、上传科室 接口

在model模块的yygh/model/hosp提供了Department实体类,对应科室信息,包括医院编号科室编号

随后在service-hosp模块的repository文件夹下创建DepartmentRepository,用@Repository修饰,继承MongoRepository

接着创建DepartmentService接口,DepartmentServiceImpl实现该接口,用@Service修饰。

controller继续沿用之前的ApiController,上传方法的编写和上传医院几乎一样,就是把方法写在DepartmentServiceImpl

具体逻辑是:把参数map集合转换成对象Department,随后创建getDepartmentByHoscodeAndDepcode:根据hoscode和depcode查询并返回变量departmentExist后续来判断是否存在,由Spring Data提供,只要声明即可使用。

测试,在科室列表点添加,使用提供的department.json上传即可,成功会返回操作成功,在Mongdb数据库会有Department表

在这里插入图片描述

3、查询|删除 科室 接口

查询科室

在ApiController中创建方法findDepartment,设置post请求方式,这里要判断传递来的信息是否包含当前页page与每页记录数limit,不存在默认设为1

int page = StringUtils.isEmpty(paremMap.get("page"))? 1:Integer.parseInt((String) paremMap.get("page"));

判断完签名之后,实例化一个DepartmentQueryVo类,并把hoscode设置给它。在查询时创建一个新的查询类DepartmentQueryVo而不直接使用原有的实体类Department是为了将查询条件和实体类分离,以更好地管理数据结构和业务逻辑。

随后调用findPageDepartment方法处理查询条件,返回查询结果,在DepartmentServiceImpl完成业务逻辑

使用departmentRepositoryfindall方法需要传递两个参数,一个Example类一个Pageable类;

Pageable类可以直接用当前页每页记录数构建

Example类需要构建匹配规则以及查询样本对象(这里要求是Department类)

    @Override
    public Page<Department> findPageDepartment(int page, int limit, DepartmentQueryVo departmentQueryVo) {
        //创建Pageable对象,设置当前页和每页记录数
        //0是第一页
        Pageable pageable = PageRequest.of(page-1,limit);
        //创建Example对象
        Department department = new Department();
        BeanUtils.copyProperties(departmentQueryVo,department);

        ExampleMatcher matcher = ExampleMatcher.matching()
                .withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING)
                .withIgnoreCase(true);
        Example<Department> example = Example.of(department,matcher);
        Page<Department> all = departmentRepository.findAll(example, pageable);
        return all;
    }

删除科室

在ApiController中创建方法removeDepartment,设置post请求方式,这里要接受hoscodedepcode用于后续指定删除对象。

这里使用的删除方式是物理删除,注释部分是逻辑删除,但使用逻辑删除前端删不掉,即删除了还有信息存留

    public void remove(String hoscode, String depcode) {
        //根据医院编号和科室编号查询
        Department department = departmentRepository.getDepartmentByHoscodeAndDepcode(hoscode, depcode);
        if (department != null){
            departmentRepository.deleteById(department.getId());
              //department.setIsDeleted(1);
             // departmentRepository.save(department);
        }

4、排班接口功能实现

项目提供了Schedule实体类作为排班表对应类,这里和之前相同,所以直接写名称对照即可。

创建ScheduleRepositoryScheduleServiceScheduleServiceImpl

上传功能和department上传科室几乎相同,需要注意的是:

  1. 查询排班是否存在,用的是hoscodehosScheduleId,所以对应spring data的方法要修改
  2. 无论是否存在,都需要设置状态为1 schedule.setStatus(1);

查询功能,需要注意的是:
1. 项目也提供了对应的vo类,ScheduleQueryVo
2. 需要获取depcode并设置给scheduleQueryVo.setDepcode(depcode);

删除功能,需要注意的是

  1. 方法体中需要获取hosScheduleId用来删除排班(这里也暂时设置逻辑删除)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/905020.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity 使用Netcode实现用户登录和登出

Unity之NetCode for GameObjets 基本使用 说明思路相关API代码实现Tips 说明 最近项目需要联机&#xff0c;项目方案选用Unity提供的NetCode for GameObjets&#xff08;以下简称NGO&#xff09;&#xff0c;踩了不少坑&#xff0c;本文不介绍基础使用&#xff0c;围绕双端&am…

【单机游戏】红色警戒游戏介绍和玩法

平地一声惊雷&#xff0c;金将军居然发射了洲际导弹&#xff0c;虽然我们不能亲自体验&#xff0c;但是我们可以自己在游戏中体验一把&#xff0c;今天就介绍一个很多80 90都玩过的即时战略游戏-红色警戒 https://pan.quark.cn/s/7aca45fa3dd7 红色警戒&#xff08;Red Alert …

【Python各个击破】matplotlib

导入 import matplotlib.pyplot as plt import numpy as np用法 # 根据x,y数组作图 fig, ax plt.subplots() ax.plot([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,…

JavaEE初阶---网络原理之TCP篇(二)

文章目录 1.断开连接--四次挥手1.1 TCP状态1.2四次挥手的过程1.3time_wait等待1.4三次四次的总结 2.前段时间总结3.滑动窗口---传输效率机制3.1原理分析3.2丢包的处理3.3快速重传 4.流量控制---接收方安全机制4.1流量控制思路4.2剩余空间大小4.3探测包的机制 5.拥塞控制---考虑…

ssm022房屋租售网站的设计与实现+jsp(论文+源码)_kaic

毕 业 设 计&#xff08;论 文&#xff09; 题目&#xff1a;房屋租售网站的设计与实现 摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为…

Knife4j配置 ▎使用 ▎教程 ▎实例

knife4j简介 支持 API 自动生成同步的在线文档:使用 Swagger 后可以直接通过代码生成文档,不再需要自己手动编写接口文档了,对程序员来说非常方便,可以节约写文档的时间去学习新技术。 提供 Web 页面在线测试 API:光有文档还不够,Swagger 生成的文档还支持在线测试.参数和格式都…

CSS flex布局- 最后一个元素占满剩余可用高度转载

效果图 技术要点 height父元素必须有一个设定的高度flex-grow: 1 flex 盒子模型内的该元素将会占据父容器中剩余的空间F12检查最后一行的元素&#xff0c;高度就已经改变了&#xff1b;

虚拟环境设置成kernel来解决一些jupyter报错问题

1. 下面提到的问题应该是不同环境&#xff08;base、虚拟环境&#xff09;的区别&#xff0c;而不是python版本的区别。 2. 这个方法起到了比较好的效果&#xff0c;但是底层的逻辑还没太明白&#xff0c;有时间继续研究下。 3. 最终的结果好像是pycharm、anaconda用的python…

(五)Web前端开发进阶2——AJAX

目录 1.Ajax概述 2.Axios库 3.认识URL 4.Axios常用请求方法 5.HTTP协议——请求报文/响应报文 6.前后端分离开发 7.Element组件库 1.Ajax概述 AJAX 是异步的 JavaScript和XML(Asynchronous JavaScript And XML)。简单点说&#xff0c;就是使用XMLHttpRequest 对象与服务…

揭秘PyInstaller:Python应用打包的瑞士军刀

文章目录 **揭秘PyInstaller&#xff1a;Python应用打包的瑞士军刀**1. 背景介绍&#xff1a;为何选择PyInstaller&#xff1f;2. PyInstaller究竟是什么&#xff1f;3. 如何安装PyInstaller&#xff1f;4. PyInstaller的简单使用方法4.1 打包单个Python脚本4.2 生成单个可执行…

Spring Boot 创建项目详细介绍

上篇文章简单介绍了 Spring Boot&#xff08;Spring Boot 详细简介&#xff01;&#xff09;&#xff0c;还没看到的读者&#xff0c;建议看看。 下面&#xff0c;介绍一下如何创建一个 Spring Boot 项目&#xff0c;以及自动生成的目录文件作用。 Maven 构建项目 访问 http…

机器学习——解释性AI(Explainable AI)

机器学习——解释性AI&#xff08;Explainable AI&#xff09; 解释性AI&#xff08;Explainable AI&#xff09;——让机器学习模型更加透明与可信什么是解释性AI&#xff1f;解释性AI的常见方法示例代码&#xff1a;使用SHAP解释随机森林模型示例代码&#xff1a;使用LIME解释…

开源一款基于 JAVA 的仓库管理系统,支持三方物流和厂内物流,包含 PDA 和 WEB 端的源码

大家好&#xff0c;我是一颗甜苞谷&#xff0c;今天分享一款基于 JAVA 的仓库管理系统,支持三方物流和厂内物流,包含 PDA 和 WEB 端的源码。 前言 在当前的物流仓储行业&#xff0c;企业面临着信息化升级的迫切需求&#xff0c;但往往受限于高昂的软件采购和维护成本。现有的…

Tomcat servlet response关于中文乱码的经验

前言 最近修改老项目项目&#xff0c;使用zuul网关返回的中文内容乱码了&#xff0c;如果使用GBK或者GB2312编码确正常显示&#xff0c;稍微实验了一下&#xff0c;发现里面很多细节&#xff0c;毕竟Springboot对我们做了很多事情&#xff0c;而且当我们使用不同的模式会出现很…

【原创分享】详述中间件的前世今生

中间件是一种软件组件&#xff0c;位于应用程序和操作系统之间&#xff0c;通过提供统一的接口和功能来简化开发和管理应用程序、提高应用程序的可靠性和性能。 中间件的前世可以追溯到20世纪80年代的分布式系统和网络技术的发展。在那个时候&#xff0c;随着计算机网络的普及…

JAVA力扣每日一题:P198. 打家劫舍

本题来自&#xff1a;力扣-每日一题 力扣 (LeetCode) 全球极客挚爱的技术成长平台https://leetcode.cn/ 题解&#xff1a; class Solution {public int rob(int[] nums) {int len nums.length;if(len 0)return 0;if(len 1)return nums[0];int first nums[0];int second …

Nuxt.js 应用中的 components:dirs 事件钩子详解

title: Nuxt.js 应用中的 components:dirs 事件钩子详解 date: 2024/10/31 updated: 2024/10/31 author: cmdragon excerpt: components:dirs 是 Nuxt.js 中的一个生命周期钩子,用于在 app:resolve 期间扩展自动导入组件的目录。通过这个钩子,开发者可以动态地添加新的组…

IDEA 好用的插件分享

IDEA 好用的插件分享 一、常用篇1. CamelCase&#xff08;大小写格式转换&#xff09;2. Translation &#xff08;翻译插件&#xff09;3. GitToolBox &#xff08;git工具箱&#xff09;4. CodeGlance Pro&#xff08;代码缩略图&#xff09;5. fittencode&#xff08;代码补…

蓝牙资讯|苹果AirPods Pro 2推出听力测试、助听器和听力保护等功能

苹果推送iOS 18.1 系统版本更新&#xff0c;AirPods Pro 2 用户也在 iOS 18.1 中获得了强大的新功能。 运行固件 7B19 的 AirPods Pro 2 用户&#xff0c;搭配 iOS 18.1 系统的 iPhone&#xff0c;将获得三项强大的听力健康功能&#xff1a;听力测试、助听器和听力保护。 听力…

计算机毕业设计Python+大模型股票预测系统 股票推荐系统 股票可视化 股票数据分析 量化交易系统 股票爬虫 股票K线图 大数据毕业设计 AI

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; Python大模型股票预测系统 …