当前位置: 首页 > news >正文

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

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

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

预约挂号微服务模块搭建

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

1、医院管理概述

目前我们把医院、科室和排班都上传到了平台,那么管理平台就应该把他们管理起来,在我们的管理平台能够直观的查看这些信息。

需求分析及Nacos启动

需求分析:
要设置一个element-ui中的table标签存放logo医院名称等级...

在这里插入图片描述

在MongoDB数据库中并没有等级字段,只有hostype,那么需要根据数据字典获取对应的等级:这里涉及到通过service-hosp远程调用service-cmn模块

注册中心与服务调用

下载nacos-server-1.1.4版本并解压,在其bin目录下双击打开startup.cmd | start.sh,前后分别对应Windows | Linux

访问路径默认为 : http://localhost:8848/nacos,用户密码都是nacos
在这里插入图片描述

Nacos注册服务

  1. 在service模块引入spring-cloud-starter-alibaba-nacos-discovery依赖
  2. application.properties配置文件设置nacos地址`spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
  3. 在启动类ServiceHospApplication上添加注解@EnableDiscoveryClient
  4. 注意:service-hosp和service-cmn都要按步骤2、3设置

我这里出现了一个问题:service-cmn突然爆了一个关于没有找到mongodb连接的问题,我心想我也没使用它,所以在该模块的依赖中去找,找到了对service-hosp的依赖,再具体分析依赖关系(右键项目可以查看),发现确实不小心填加了关于mongodb的依赖项,所以做法很简单,就是直接把对service-hosp的依赖删除即可。[我这删除完没报错,如果你们有,最多应该也就是import出了问题,应该直接删就行,我没看见需要import关于hosp模块的地方]

在这里插入图片描述

2、 医院列表接口

在service-hosp中创建HospitalController用于存储实现方法,用@RestController@RequestMapping("xx")@CrossOrigin注解修饰。

医院列表实际是以get方式获取page和limit,随后进行条件查询。项目提供HospitalQueryVo类用于存放查询条件。创建selectHospPage方法实现条件查询,流程就是基于Mongodb数据库条件查询逻辑。

由于医院等级、省市区地址都是取的数据字典value值,因此我们在列表显示医院等级与医院地址时要根据数据字典value值获取数据字典名称。

由于yygh_cmn数据库表的value值并不唯一,所以需要创建方法来根据dictcode和value获取对应的name
service-cmnDictController创建getName方法;
在这里插入图片描述

    @GetMapping("getName/{dictCode}/{value}")public String getName(@PathVariable String dictCode,@PathVariable String value){String dictName = dictService.getDictName(dictCode,value);return dictName;}@GetMapping("getName/{value}")public String getName(@PathVariable String value){String dictName = dictService.getDictName("",value);return dictName;}

在DictServiceImpl中实现具体getDictName方法:

  1. 提供value,直接依靠value值来找
  2. 提供value和dictcode,根据dictcode找到对应其父类对应的id,再根据parent_id =id以及value做更细致的查找
public String getDictName(String dictCode, String value) {//如果dictCode为空,则直接根据value查询if (StringUtils.isEmpty(dictCode)){QueryWrapper<Dict> wrapper = new QueryWrapper<>();wrapper.eq("value",value);Dict dict = baseMapper.selectOne(wrapper);return dict.getName();}else {Dict codeDict =this.getDictByCode(dictCode);Long parent_id = codeDict.getId();//根据parent_id和value进行查询Dict finalDick = baseMapper.selectOne(new QueryWrapper<Dict>().eq("parent_id", parent_id).eq("value", value));return finalDick.getName();}

封装Feign服务调用

搭建service_client模块,来进行服务调用的封装,注意:这里是创建子模块,也就是yygh_parent->新建模块->Maven工程,而不是用Spring Initializr创建一个springboot工程。

设置打包方式为<packaging>pom</packaging>

导入相关依赖:common模块、feign相关依赖、common-util模块等。

在该模块创建子模块service_cmn_client

创建接口DictFeignClient,该接口用@FeignClient("service-cmn")@Repository修饰,其中service-cmn是nacos中需要被调用服务的名称,该名称的声明在application.properties中。

该接口中方法的声明步骤,直接去找你要调用的模块方法,除方法体外内容全部复制即可,但需要注意的是@xxxMapping注解的路径需要补充完整;此外还需要指定URL路径中的变量名

   @GetMapping("/admin/cmn/dict/getName/{value}")public String getName(@PathVariable("value") String value);

接着就是在调用端service-hosp模块引入service_cmn_client依赖,在HospitalServiceImpl中实例化实现DictFeignClient接口的对象;并在启动类添加注解@EnableFeignClients(basePackages = "com.xxx")

由于Hospital中没有等级信息字段,查看其父类BaseMongoEntity中声明了Map<String,Object> param,利用其进行对等级的封装。

根据lambda表达式,对每一个取出的Hospital进行等级与地区设置;分别用hostypeStringfullAddress对应。

//根据条件与页数返回pages后//获取查询list集合,遍历进行医院等级封装...pages.getContent().stream().forEach(item->{this.setHospitalHosType(item);});private Hospital setHospitalHosType(Hospital hospital) {//这里的hospital的Hostype是value类型:1,2...//"Hostype"是对应字典的dict_CodeString hostypeString = dictFeignClient.getName("Hostype", hospital.getHostype());//查询省 市 地区String provinceString = dictFeignClient.getName(hospital.getProvinceCode());String cityString = dictFeignClient.getName( hospital.getCityCode());String districtString = dictFeignClient.getName(hospital.getDistrictCode());hospital.getParam().put("hostypeString",hostypeString);hospital.getParam().put("fullAddress",provinceString+cityString+districtString);return hospital;}

测试时nacos、redis、mongodb、nginx全部打开,再启动模块,再到swagger里测试。
在这里插入图片描述

查询所有子节点 接口

首次进入前端,显示所有省份的医院信息;再添加查询功能,根据进行条件查询

所以在DictController创建方法,根据dictCode查询子数据列表并在DictServiceImpl实现findByDictCode代码逻辑。

findByDictCode借助getDictByCode函数,输入dictCode可以得到对应的Dict对象,再通过findChildData,输入Dict对象的id,得到其子节点数组,最后做返回。

测试时,输入对应dict_code,会以JSON响应对应的子节点(省:北京市...)

医院列表 前端

第一步是添加路由,在router/index.js的医院设置管理下面添加医院列表部分,并设置跳转路径为:@/views/hosp/list(对应创建)

第二步在api/hosp.js设置与后端接口的对应;

  1. getHospList:对应后端listHospital方法,根据当前页,每页记录数,查询条件查询。
  2. findByDictCode:对应后端findByDictCode方法,根据DictCode查所有
  3. findChildId:对应后端findChildData方法,根据数据id查所有

第三部分编写list.vue

<template>标签内,仍是借助element-ui

先是提供两个选择表单,选择要查询的省和市,一个普通表单对应要查询的医院名称,一个查询按钮;

随后提供一个table,里面对应医院列表的各个信息

最后放置分组组件对应分页功能。

方法部分

  1. 导入hosp.js,为后续调用方法做准备
  2. 搭建基础结构:data、created、methods
  3. 定义变量及默认值:list医院列表数据、 total数据库中的总记录数、page 默认页码

进入页面就需要进行查询,所以创建fetchData方法,内部调用getHospList,并在.then()中处理返回值,将list和total分别赋值。

同时,需要在查询列表中,显示所有的省份,因此创建findAllProvince方法,内部调用findByDictCode

根据省需要提供市的列表,做法是创建provinceChanged方法,首先初始化市列表,随后根据searchObj.provinceCode获得选项框省的ID,再调用findChildId,最后把返回值赋值给`cityList

页面插件有一个选择页数进行展示,绑定方法changeSize,每一次选择页数进行调用,内部直接赋值this.limit,再执行this.fetchData(1)实现刷新即可。

在这里插入图片描述

相关文章:

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

医院信息化与智能化系统(15) 这里只描述对应过程&#xff0c;和可能遇到的问题及解决办法以及对应的参考链接&#xff0c;并不会直接每一步详细配置 如果你想通过文字描述或代码画流程图&#xff0c;可以试试PlantUML&#xff0c;告诉GPT你的文件结构&#xff0c;让他给你对应…...

小红书笔记详情API接口系列(概述到示例案例)

小红书笔记详情数据API接口是小红书开放平台提供的一项服务&#xff0c;允许开发者获取小红书上的笔记详情数据。以下是对该接口及其使用方法的详细介绍&#xff1a; 一、接口概述 小红书笔记详情数据API接口提供了一系列的接口&#xff0c;允许开发者获取笔记的标题、正文、标…...

跨境电商平台系统开发

随着全球化的不断深入&#xff0c;跨境电商作为新兴的商业模式&#xff0c;越来越受到企业和消费者的关注。跨境电商平台的系统开发不仅涉及技术层面的挑战&#xff0c;更涉及到法律、物流、支付等多方面的因素。商淘云将分享跨境电商平台系统开发的主要环节&#xff0c;包括需…...

开源模型应用落地-qwen模型小试-Qwen2.5-7B-Instruct-玩转ollama-Modelfile文件(二)

一、前言 在AI大模型百花齐放的时代,很多人都对新兴技术充满了热情,渴望尝试。然而,实际上要入门AI技术的门槛非常高。除了需要高端设备外,还需要面对复杂的部署和安装过程,这让许多人望而却步。在这样的背景下,Ollama的出现为广大开发者和爱好者提供了一条便捷的道路,极…...

链表详解(一)

目录 顺序表的问题及思考链表链表的概念及结构链表的分类单链表的实现链表功能实现遍历链表void SLTprint(SLNode* phead)代码 创造新节点SLNode* CreateNode(SLNDataType x)代码 顺序表的问题及思考 中间/头部的插入删除&#xff0c;时间复杂度为O(N),效率低,但是尾部插入效率…...

npm入门教程6:npm脚本

一、npm脚本的基本用法 定义脚本 在package.json文件的scripts字段中&#xff0c;你可以定义多个脚本命令。每个脚本都是一个键值对&#xff0c;其中键是脚本的名称&#xff0c;值是要执行的命令。例如&#xff1a; "scripts": {"start": "node index…...

用Python脚本执行安卓打包任务

这个样例是基于windows系统写的python打包安卓的脚本&#xff1a; 一、配置AndroidStudio下的打包任务 1.在Android项目根目录下的build.gradle文件配置生成Release包的任务&#xff1a; task cleanAll(type: Delete) {delete rootProject.buildDirrootProject.subprojects.e…...

制作安装k8s需要的离线yum源

制作安装k8s需要的离线yum源 添加docker在线源制作安装k8s命令行工具需要的离线yum源传到内网k8s节点&#xff0c;通过如下命令导出镜像&#xff1a; 要全内网环境安装docker、k8s和相关依赖&#xff0c;需要在内部提供安装k8s、docker需要的yum源 添加docker在线源 yum-confi…...

Node学习记录-events

来自&#xff1a;https://juejin.cn/post/7285915718666354723 和 https://nodejs.cn/api/events.html Nodejs核心API都是采用异步事件驱动架构&#xff0c;在该架构中&#xff0c;某些类型的对象&#xff08;触发器&#xff09;触发命名事件&#xff0c;导致调用Function对象(…...

Java Collection/Executor DelayedWorkQueue 总结

前言 相关系列 《Java & Collection & 目录》《Java & Executor & 目录》《Java & Collection/Executor & DelayedWorkQueue & 源码》《Java & Collection/Executor & DelayedWorkQueue & 总结》《Java & Collection/Executor &a…...

《TCP/IP网络编程》学习笔记 | Chapter 1:理解网络编程和套接字

《TCP/IP网络编程》学习笔记 | Chapter 1&#xff1a;理解网络编程和套接字 《TCP/IP网络编程》学习笔记 | Chapter 1&#xff1a;理解网络编程和套接字基本概念服务端客户端 基于 Linux 平台的 "Hello world!" 服务端和客户端基于 Linux 的文件操作打开文件关闭文件…...

服务端监控工具:Nmon使用方法

在性能测试过程中&#xff0c;对服务端的各项资源使用情况进行监控是很重要的一环。这篇博客&#xff0c;介绍下服务端监控工具&#xff1a;nmon的使用方法。 一、认识nmon 1、简介 nmon是一种在AIX与各种Linux操作系统上广泛使用的监控与分析工具&#xff0c;它能在系统运行…...

Java中的线程安全问题(如果想知道Java中有关线程安全问题的基本知识,那么只看这一篇就足够了!)

前言&#xff1a;多线程编程已经广泛开始使用&#xff0c;其可以充分利用系统资源来提升效率&#xff0c;但是线程安全问题也随之出现&#xff0c;它直接影响了程序的正确性和稳定性&#xff0c;需要对其进行深入的理解与解决。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解…...

基础设施即代码(IaC)在Python自动化运维中的应用探讨

基础设施即代码&#xff08;IaC&#xff09;在Python自动化运维中的应用探讨 目录 &#x1f310; IaC概念与工具介绍&#x1f40d; 使用Python实现基础设施自动化&#x1f4e6; 版本控制与基础设施管理的最佳实践&#x1f504; 部署环境的一致性与可复现性 1. &#x1f310; …...

浅谈路由器

路由器是一种网络设备&#xff0c;它在网络中起着至关重要的作用&#xff0c;主要功能包括&#xff1a; 1、数据转发&#xff1a;路由器的主要任务是将数据包从一个网络转发到另一个网络。它根据数据包的目的地址来决定将数据包发送到哪个网络。 2、路径选择&#xff1a;路由器…...

openGauss数据库-头歌实验1-1 初识openGauss

一、历史与特性 任务描述 本关任务&#xff1a;了解openGauss的发展历史以及相关特性。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;1.openGauss的发展历程&#xff0c;2.openGauss的功能特性。 发展历程 2019年9月19日在华为全联接大会上&#xff0c;…...

QT找不到ffmpeg链接库解决方法

error: undefined reference to avformat_network_init() 一个神奇的报错&#xff0c;查了很久&#xff0c;检查步骤&#xff1a; 1、检查了 pro工程文件 2、链接库的真实性和正确性 在main.cpp中调用没有报错&#xff0c;在其它cpp文件中调用就报错。 破案了&#xff0c;…...

消息队列-Rabbitmq(消息发送,消息接收)

将来我们开发业务功能的时候&#xff0c;肯定不会在控制台收发消息&#xff0c;而是应该基于编程的方式。由于RabbitMQ采用了AMQP协议&#xff0c;因此它具备跨语言的特性。任何语言只要遵循AMQP协议收发消息&#xff0c;都可以与RabbitMQ交互。并且RabbitMQ官方也提供了各种不…...

2、顶点着色器之视图矩阵

1、作用&#xff1a;将物体从世界坐标系转换到相机坐标系&#xff0c;相当于从世界坐标系转换到相机的局部(本地)坐标系。 2、基于LookAt函数的视图矩阵&#xff1a; 相机位置eye&#xff1a;(ex,ey,ez)&#xff0c;世界坐标系下的位置 目标位置center&#xff1a;(cx,cy,cz…...

crontab实现2026年开始每个月1号执行一次

要在 crontab 中设置一个任务&#xff0c;使其从 2026 年开始每个月的 1 号执行一次&#xff0c;可以使用以下格式&#xff1a; 0 0 1 * * <你的命令>这条规则的解释如下&#xff1a; 0 0&#xff1a;表示在每个月的 1 号的零点&#xff08;00:00&#xff09;执行。1&a…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

网络六边形受到攻击

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 抽象 现代智能交通系统 &#xff08;ITS&#xff09; 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 &#xff08;…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...