尚医通-医院详情功能(二十七)

目录:

(1)前台用户系统-医院详请-情接口开发

(2)前台用户系统-技术点-nuxt路由

(3)前台用户系统-医院详情-前端整合


(1)前台用户系统-医院详-情接口开发

现在做在页面点击某一个医院或者搜索某一个医院,进入到医院详情页面中去:

说明:需要获取医院信息(医院基本信息、预约信息)和科室信息

在HospApiController中添加接口访问:

 @ApiOperation(value = "根据医院编号获取科室列表")@GetMapping("department/{hoscode}")public Result index(@ApiParam(name = "hoscode", value = "医院code", required = true)@PathVariable String hoscode) {List<DepartmentVo> deptTree = departmentService.findDeptTree(hoscode);return Result.ok(deptTree);}@ApiOperation(value = "根据医院编号获取医院预约挂号详情")@GetMapping("{hoscode}")public Result item(@ApiParam(name = "hoscode", value = "医院code", required = true)@PathVariable String hoscode) {Map<String,Object> map= hospitalService.item(hoscode);return Result.ok(map);}

 HospitalService 接口:

 

package com.atguigu.yygh.hosp.service;import com.atguigu.yygh.model.hosp.Hospital;
import com.atguigu.yygh.vo.hosp.HospitalQueryVo;
import org.springframework.data.domain.Page;import java.util.List;
import java.util.Map;public interface HospitalService {//上传医院接口的方法void save(Map<String, Object> paramMap);//根据医院编号进行查询Hospital getByHoscode(String hoscode);//医院列表(条件查询分页)Page<Hospital> selectHospPage(Integer page, Integer limit, HospitalQueryVo hospitalQueryVo);//更新医院的上线状态void updateStatus(String id, Integer status);//医院的详情信息Map<String, Object> getHospById(String id);//获取医院名称String getHospName(String hoscode);//根据医院名称模糊查询List<Hospital> findByHosName(String hosname);//根据医院编号获取医院预约挂号详情Map<String, Object> item(String hoscode);
}

 实现类:

 //根据医院编号进行查询@Overridepublic Hospital getByHoscode(String hoscode) {Hospital hospital = hospitalRepository.getHospitalByHoscode(hoscode);return hospital;}//封装医院等级方法private Hospital setHospitalHosType(Hospital hospital){//获取到医院等级的名称String hostypeString= dictFeignClient.getName("Hostype", hospital.getHostype());//给hospital里面的Map属性赋值hospital.getParam().put("hostypeString", hostypeString);//查询省市区String provinceString = dictFeignClient.getName(hospital.getProvinceCode());String cityString = dictFeignClient.getName(hospital.getCityCode());String districtString = dictFeignClient.getName(hospital.getDistrictCode());hospital.getParam().put("fullAddress", provinceString + cityString + districtString);return hospital;}//根据医院编号获取医院预约挂号详情@Overridepublic Map<String, Object> item(String hoscode) {Map<String, Object> result = new HashMap<>();//医院详情//调用上面封装医院等级方法Hospital hospital = this.setHospitalHosType(this.getByHoscode(hoscode));//调用上面根据医院编号进行查询的方法result.put("hospital", hospital);//预约规则result.put("bookingRule", hospital.getBookingRule());//不需要重复返回hospital.setBookingRule(null);return result;}

(2)前台用户系统-技术点-nuxt路由

我们现在使用的nuxt框架,nuxt框架是基于vue做到的,实现的是服务端渲染,nuxt中有一种操作叫做nuxt路由跳转,nuxt有它特有的方式,nuxt实现路由跳转有2中路由

 

 

固定路由: 

 

 

<template><div class="home page-component">test固定路由</div>
</template>

 

点击北京协和医院:

 

 动态路由:

 

 

<template><div class="home page-component">test动态路由</div></template>

在次点击那个医院:路径发生了变化加;额1000_0

 

(3)前台用户系统-医院详情-前端整合

在hosp.js中继续定义接口访问:

 //根据医院编号查询医院预约挂号详情show(hoscode) {return request({url: `${api_name}/findHospDetail/${hoscode}`,method: 'get'})},//根据医院编号查询医院科室信息findDepartment(hoscode) {return request({url: `${api_name}/department/${hoscode}`,method: 'get'})},

 

<template><!-- header --><div class="nav-container page-component"><!--左侧导航 #start --><div class="nav left-nav"><div class="nav-item selected"><spanclass="v-link selected dark":onclick="'javascript:window.location=\'/hosp/' + hospital.hoscode + '\''">预约挂号</span></div><div class="nav-item"><spanclass="v-link clickable dark":onclick="'javascript:window.location=\'/hosp/detail/' +hospital.hoscode +'\''">医院详情</span></div><div class="nav-item"><spanclass="v-link clickable dark":onclick="'javascript:window.location=\'/hosp/notice/' +hospital.hoscode +'\''">预约须知</span></div><div class="nav-item"><span class="v-link clickable dark"> 停诊信息 </span></div><div class="nav-item"><span class="v-link clickable dark"> 查询/取消 </span></div></div><!-- 左侧导航 #end --><!-- 右侧内容 #start --><div class="page-container"><div class="hospital-home"><div class="common-header"><div class="title-wrapper"><span class="hospital-title">{{ hospital.hosname }}</span><div class="icon-wrapper"><span class="iconfont"></span>{{ hospital.param.hostypeString }}</div></div></div><div class="info-wrapper"><imgclass="hospital-img":src="'data:image/jpeg;base64,' + hospital.logoData":alt="hospital.hosname"/><div class="content-wrapper"><div>挂号规则</div><div class="line"><div><span class="label">预约周期:</span><span>{{ bookingRule.cycle }}天</span></div><div class="space"><span class="label">放号时间:</span><span>{{ bookingRule.releaseTime }}</span></div><div class="space"><span class="label">停挂时间:</span><span>{{ bookingRule.stopTime }}</span></div></div><div class="line"><span class="label">退号时间:</span><span v-if="bookingRule.quitDay == -1">就诊前一工作日{{ bookingRule.quitTime }}前取消</span><span v-if="bookingRule.quitDay == 0">就诊前当天{{ bookingRule.quitTime }}前取消</span></div><div style="margin-top: 20px">医院预约规则</div><div class="rule-wrapper"><ol><li v-for="item in bookingRule.rule" :key="item">{{ item }}</li></ol></div></div></div><div class="title select-title">选择科室</div><div class="select-dept-wrapper"><div class="department-wrapper"><div class="hospital-department"><div class="dept-list-wrapper el-scrollbar" style="height: 100%"><divclass="dept-list el-scrollbar__wrap"style="margin-bottom: -17px; margin-right: -17px"><div class="el-scrollbar__view"><divclass="sub-item"v-for="(item, index) in departmentVoList":key="item.id":class="index == activeIndex ? 'selected' : ''"@click="move(index, item.depcode)">{{ item.depname }}</div></div></div><div class="el-scrollbar__bar is-horizontal"><divclass="el-scrollbar__thumb"style="transform: translateX(0%)"></div></div><div class="el-scrollbar__bar is-vertical"><divclass="el-scrollbar__thumb"style="transform: translateY(0%); height: 91.4761%"></div></div></div></div></div><div class="sub-dept-container"><divv-for="(item, index) in departmentVoList":key="item.id":class="index == 0 ? 'selected' : ''"class="sub-dept-wrapper":id="item.depcode"><div class="sub-title"><div class="block selected"></div>{{ item.depname }}</div><div class="sub-item-wrapper"><divv-for="it in item.children":key="it.id"class="sub-item"@click="schedule(it.depcode)"><span class="v-link clickable">{{ it.depname }} </span></div></div></div></div></div></div></div><!-- 右侧内容 #end --></div><!-- footer -->
</template><script>
import "~/assets/css/hospital_personal.css";
import "~/assets/css/hospital.css";import hospitalApi from "@/api/hosp";export default {data() {return {hoscode: null,activeIndex: 0, //样式hospital: {param: {},}, //医院bookingRule: {}, //预约的信息departmentVoList: [], //科室的信息};},created() {this.hoscode = this.$route.params.hoscode;this.init();},methods: {init() {//根据医院编号查询详情hospitalApi.show(this.hoscode).then((response) => {this.hospital = response.data.hospital; //赋值this.bookingRule = response.data.bookingRule;});//根据医院编号查询科室hospitalApi.findDepartment(this.hoscode).then((response) => {this.departmentVoList = response.data; //赋值});},//左侧菜单框往下滑,做选中方法move(index, depcode) {this.activeIndex = index;document.getElementById(depcode).scrollIntoView();},},
};
</script>

点击这个医院:

 

 (3)前台用户系统-医院详情-前端整合

创建目录包:

 

<template><!-- header --><div class="nav-container page-component"><!--左侧导航 #start --><div class="nav left-nav"><div class="nav-item"><spanclass="v-link clickable dark":onclick="'javascript:window.location=\'/hosp/' + hospital.hoscode + '\''">预约挂号</span></div><div class="nav-item selected"><spanclass="v-link selected dark":onclick="'javascript:window.location=\'/hosp/detail/' +hospital.hoscode +'\''">医院详情</span></div><div class="nav-item"><spanclass="v-link clickable dark":onclick="'javascript:window.location=\'/hosp/notice/' +hospital.hoscode +'\''">预约须知</span></div><div class="nav-item"><span class="v-link clickable dark"> 停诊信息 </span></div><div class="nav-item"><span class="v-link clickable dark"> 查询/取消 </span></div></div><!-- 左侧导航 #end --><!-- 右侧内容 #start --><div class="page-container"><div class="hospital-detail"><div class="common-header"><div class="title-wrapper"><span class="hospital-title">{{ hospital.hosname }}</span><div class="icon-wrapper"><span class="iconfont"></span> {{ hospital.param.hostypeString }}</div></div></div><div class="info-wrapper"><img:src="'data:image/jpeg;base64,' + hospital.logoData":alt="hospital.hosname"style="width: 80px; height: 80px"/><div class="content-wrapper"><div></div><div></div><div></div><div><div class="icon-text-wrapper"><span class="iconfont prefix-icon"></span><span class="text"><p>{{ hospital.route }}</p> </span><span class="iconfont right-icon"></span></div></div></div></div><div class="title mt40">医院介绍</div><div class="detail-content mt40"><p>{{ hospital.intro }}</p></div></div></div><!-- 右侧内容 #end --></div><!-- footer -->
</template><script>
import "~/assets/css/hospital_personal.css";
import "~/assets/css/hospital.css";import hospitalApi from "@/api/hosp";
export default {data() {return {hoscode: null,hospital: {param: {},},};},created() {this.hoscode = this.$route.params.hoscode;this.init();},methods: {init() {hospitalApi.show(this.hoscode).then((response) => {this.hospital = response.data.hospital;});},},
};
</script><style>
.hospital-detail .info-wrapper {width: 100%;padding-left: 0;padding-top: 0;margin-top: 0;flex-direction: inherit;
}.hospital-detail .info-wrapper .text {font-size: 14px;
}.hospital-detail .content-wrapper p {text-indent: 0;
}
</style>

 

<template><!-- header --><div class="nav-container page-component"><!--左侧导航 #start --><div class="nav left-nav"><div class="nav-item"><spanclass="v-link clickable dark":onclick="'javascript:window.location=\'/hosp/' + hospital.hoscode + '\''">预约挂号</span></div><div class="nav-item"><spanclass="v-link clickable dark":onclick="'javascript:window.location=\'/hosp/detail/' +hospital.hoscode +'\''">医院详情</span></div><div class="nav-item selected"><spanclass="v-link selected dark":onclick="'javascript:window.location=\'/hosp/notice/' +hospital.hoscode +'\''">预约须知</span></div><div class="nav-item"><span class="v-link clickable dark"> 停诊信息 </span></div><div class="nav-item"><span class="v-link clickable dark"> 查询/取消 </span></div></div><!-- 左侧导航 #end --><!-- 右侧内容 #start --><div class="page-container"><div class="hospital-notice"><div class="content"><h2>{{ hospital.hosname }}预约挂号须知</h2><p>为方便您早日就医康复,请您认真阅读预约挂号须知:</p><h4 id="一、预约实名制:">一、预约实名制:</h4><p>统一平台电话预约和网上预约挂号均采取实名制注册预约,请您如实提供就诊人员的真实姓名、有效证件号(身份证、护照)、性别、手机号码、社保卡号等基本信息。</p><h4 id="二、预约挂号:">二、预约挂号:</h4><p>按照北京市卫健委统一平台要求,预约挂号规则如下:</p><ul><li>在同一自然日,同一医院,同一科室,同一就诊单元,同一就诊人,可以预约最多1个号源;</li><li>在同一自然周,同一就诊人,可以预约最多8个号源;</li><li>在同一自然月,同一就诊人,可以预约最多12个号源;</li><li>在同一自然季度,同一就诊人,可以预约最多24个号源。</li></ul><h4 id="三、取消预约:">三、取消预约:</h4><p>已完成预约的号源,如需办理退号,至少在就诊前一工作日14:00前通过网站、微信公众号、114电话等平台预约渠道进行取消预约。</p><h4 id="四、爽约处理:">四、爽约处理:</h4><p>如预约成功后患者未能按时就诊且不办理取消预约号视为爽约,同一患者在自然年内爽约规则如下:</p><ul><li>累计爽约3次,自3次爽约日起,90天内不允许通过114平台进行预约挂号;</li><li>累计爽约6次,自6次爽约日起,180天内不允许通过114平台进行预约挂号。</li></ul></div></div></div><!-- 右侧内容 #end --></div><!-- footer -->
</template><script>
import "~/assets/css/hospital_personal.css";
import "~/assets/css/hospital.css";import hospitalApi from "@/api/hosp";
export default {data() {return {hoscode: null,hospital: {param: {},},};},created() {this.hoscode = this.$route.params.hoscode;this.init();},methods: {init() {hospitalApi.show(this.hoscode).then((response) => {this.hospital = response.data.hospital;});},},
};
</script><style>
.hospital-detail .info-wrapper {width: 100%;padding-left: 0;padding-top: 0;margin-top: 0;flex-direction: inherit;
}.hospital-detail .info-wrapper .text {font-size: 14px;
}.hospital-detail .content-wrapper p {text-indent: 0;
}
</style>

点击医院详情:

 

点击预约须知:

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2020年全球及中国分子影像系统(PET/CT及PET/MR)行业现状及竞争格局分析,国产龙头在高端产品领域走在国际前沿「图」

一、分子影像系统综述 分子影像系统&#xff08;包括PET/CT及PET/MR&#xff09;通过显示组织水平、细胞和亚细胞水平的特定分子&#xff0c;反映活体状态下分子水平变化&#xff0c;对生物学行为在影像方面进行定性和定量研究。分子成像技术能够探查疾病过程中细胞和分子水平…

派尔特医疗在港交所招股书二次“失效”,上市计划实质性延迟

2022年6月30日&#xff0c;贝多财经从港交所披露易了解到&#xff0c;北京派尔特医疗科技股份有限公司&#xff08;下称“派尔特医疗”&#xff09;的招股书“失效”。事实上&#xff0c;这已经是派尔特医疗的上市申请材料第二次“失效”。 在此之前&#xff0c;派尔特医疗曾于…

尚医通 (二十六) --------- 科室接口开发

目录 一、上传科室接口1. 添加科室基础类2. 上传科室 二、查询科室接口三、删除科室接口 一、上传科室接口 1. 添加科室基础类 A、添加 model 说明&#xff1a;由于实体对象没有逻辑&#xff0c;我们已经统一导入 com.fancy.yygh.model.hosp.Department B、添加 repository…

医疗企业GE HealthCare纳斯达克上市:市值275亿美元

雷递网 雷建平 1月5日 医疗企业GE HealthCare&#xff08;股票代码为&#xff1a;“GEHC”&#xff09;昨日在美国纳斯达克上市&#xff0c;发行价为56美元。 GE HealthCare开盘价为54.13美元&#xff0c;较发行价下跌3.34%&#xff1b;收盘价为60.49美元&#xff0c;较发行价上…

python查询腾讯股票api实时行情数据

import urllib.requestdef httpGet(url):requrllib.request.Request(url) contenturllib.request.urlopen(req).read()return contentcontent httpGet("http://qt.gtimg.cn/qsh600213"); data str(content).split(~); print(f当前价格:{data[3]}); print(f昨收:…

高视医疗在港交所招股:IPO募资要用于贷款,高铁塔为控股股东

11月30日&#xff0c;高视医疗&#xff08;HK:02407&#xff09;在港交所发布公告&#xff0c;拟全球发售1306.86万股股份&#xff0c;其中香港发售股份130.7万股&#xff0c;国际发售股份1176.16万股&#xff0c;另有15%超额配股权&#xff0c;于2022年11月30日至12月5日招股&…

高视医疗冲刺香港上市:家族特色明显,奥博资本、华平投资等持股

11月28日&#xff0c;高视医疗&#xff08;Gaush Meditech Ltd&#xff09;在香港递交招股书&#xff0c;准备在港交所主板上市&#xff0c;摩根士丹利、海通国际为联席保荐人。 公开信息显示&#xff0c;高视医疗成立于1998年&#xff0c;专注于服务眼科医疗事业&#xff0c;…

东软医疗再次赴港递交上市申请,共安装超过4.1万台医学影像设备

据港交所12月1日披露&#xff0c;东软医疗系统股份有限公司&#xff08;下称“东软医疗”&#xff09;向港交所主板递交上市申请&#xff0c;中金公司与高盛为其联席保荐人。据贝多财经了解&#xff0c;这已经是东软医疗第二次向港交所递交招股书。 早前&#xff0c;东软医疗曾…

华康医疗深交所IPO:市值49亿 为湖北今年首家上市企业

雷递网 雷建平 1月28日报道 武汉华康世纪医疗股份有限公司&#xff08;简称&#xff1a;“华康医疗”&#xff0c;股票代码为&#xff1a;“证券代码&#xff1a;301235”&#xff09;今日在深交所创业板上市。 华康医疗本次公开发行2640万股&#xff0c;发行价为39.30元&#…

高视医疗在港交所上市:IPO首日跌破发行价,高铁塔为控股股东

12月12日&#xff0c;高视医疗&#xff08;HK:02407&#xff09;在港交所上市。本次上市&#xff0c;高视医疗的发行价确定为每股发售股份51.40港元。据此计算&#xff0c;高视医疗预计募资约6.72亿港元。而招股书则显示&#xff0c;该公司预计募资净额约为2.83亿港元&#xff…

chatgpt-openapi路径文件

原包下载路径 Releases riba2534/openai-scf-goproxy (github.com) 已下载好的3个版本文件如下 链接: https://pan.baidu.com/s/1jY4dz_F21GhtNrWYDZy2QA 提取码: dv2t 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦

HuggingGPT:一个ChatGPT控制所有AI模型,自动帮人完成AI任务

最强组合&#xff1a;HuggingFaceChatGPT ——HuggingGPT&#xff0c;它来了&#xff01; 只要给定一个AI任务&#xff0c;例如“下面这张图片里有什么动物&#xff0c;每种有几只”。 它就能帮你自动分析需要哪些AI模型&#xff0c;然后直接去调用HuggingFace上的相应模型&a…

ChatGPT原理——李宏毅2023机器学习的学习笔记

本文是本人自学李宏毅老师2023年最新的机器学习视频的学习笔记 主要目的是两个方面&#xff1a; 1、记录自己的学习过程&#xff0c;给自学过程增加一点“仪式感”~ 2、通过 记录学习过程、总结、提炼&#xff0c;来尽可能使用费曼学习法&#xff08;给别人讲知识&#xff0…

chatGPT辅助解决QT构建报错error: multiple target patterns

ChatGPT 和 AI 图像生成使用 PromptsZone 探索300多个 ChatGPT 提示&#xff0c;立即试用&#xff0c;并与他人分享您的创意提示&#xff01;https://promptszone.com/?rcW2ERcOJMUT先给老铁们一个白嫖的chatGPT网站&#xff0c;注册就可以使用了。不用翻墙。 正式记录此次使…

看看OpenAI(ChatGPT)怎么回答马斯克呼吁停止ai研究的?

me&#xff1a;如何评价马斯克呼吁停止ai研究 ChatGPT&#xff1a;作为一个 AI 模型&#xff0c;我并不认为停止 AI 研究是正确的选择&#xff0c;因为 AI 技术对社会和经济发展都有着巨大的潜力。但是&#xff0c;作为一个智能的机器学习模型&#xff0c;我可以理解马斯克所表…

如何解决错误:An error occurred.问题

在使用openai大型Chat GPT对话过程中经常出现如下提示 An error occurred. If this issue persists please contact us through our help center at help.openai.com 这是触发了openai的封控机制导致。 解决办法&#xff1a; 解决访问提示Access denied等问题

杜克大学陈怡然教授转载一篇谈ChatGPT为何无法出现在中国的文章,一针见血

整理&#xff1a;深度学习自然语言处理 公众号 昨天刷微博看到了杜克大学陈怡然教授转载的一篇关于谈论中国AI和欧美AI的文章&#xff0c;我认为很有深度&#xff0c;但是如陈怡然教授开头所说的一样&#xff0c;得辩证的看&#xff0c;文章确实指出了问题&#xff0c;但某些方…

SAP中寄售补货的两种方法分析

关于寄售补货&#xff0c;移动类型631&#xff0c;可以通过两种方式从公司库存移动到客户寄售库存。 1、在系统中建立客户物料关系的销售订单或销售计划协议。通过针对销售订单的发货来达到从公司库存移动到客户寄售库存的寄售补货的目的&#xff0c;事务VL01N。 2、在没有建…

SAP RETAIL 自动补货WRP1R事务代码报错 - Forecast values for determining target stock do not exist -

SAP RETAIL 自动补货WRP1R事务代码报错 - Forecast values for determining target stock do not exist - 如下商品主数据&#xff0c;MRP Type是RF. 该物料无任何库存&#xff0c; 执行自动补货事务代码WRP1R, 报错&#xff1a;EWT 131 Forecast values for determining targe…

阿里新零售中的智能补货(I)— 库存模型

文章作者&#xff1a;阿里零售通算法团队 出品社区&#xff1a;DataFun 导读&#xff1a; 零售通作为阿里巴巴新零售的八路大军之一&#xff0c;肩负着“共建智能分销平台”和“让百万小店拥抱DT时代”的重要使命。一方面&#xff0c;我们通过线上平台&#xff08;零售通APP&a…