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

目录

  • 一、上传科室接口
    • 1. 添加科室基础类
    • 2. 上传科室
  • 二、查询科室接口
  • 三、删除科室接口


一、上传科室接口

1. 添加科室基础类

A、添加 model

说明:由于实体对象没有逻辑,我们已经统一导入
com.fancy.yygh.model.hosp.Department

B、添加 repository

添加 com.fancy.yygh.hosp.repository.DepartmentRepository

package com.fancy.yygh.hosp.repository;@Repository
public interface DepartmentRepository extends MongoRepository<Department,String> {}

C、添加 service 接口及实现类

添加 com.fancy.yygh.hosp.service.DepartmentService 接口

package com.fancy.yygh.hosp.service;public interface DepartmentService {}

添加com.fancy.yygh.hosp.service.impl.DepartmentServiceImpl 接口实现

package com.fancy.yygh.hosp.service.impl;@Service
@Slf4j
public class DepartmentServiceImpl implements DepartmentService {@Autowiredprivate DepartmentRepository departmentRepository;
}

2. 上传科室

A、上传科室

医院编号是平台分配的,全局唯一,科室编号为医院自己的编号,相对医院唯一,上传科室接口可以多次调用,如果医院编号与科室编号组合唯一为更新操作

B、接口数据分析

{"hoscode": "1000_0","depcode": "200050923","depname": "门诊部核酸检测门诊(东院)","intro": "门诊部核酸检测门诊(东院)","bigcode": "44f162029abb45f9ff0a5f743da0650d","bigname": "体检科"
}

说明:一个大科室下可以有多个小科室,如图:
在这里插入图片描述

C、添加 service 接口

在 DepartmentService 类添加接口

/*** 上传科室信息* @param paramMap
*/
void save(Map<String, Object> paramMap);

说明:参数使用 Map,减少对象封装,有利于签名校验,后续会体验到

在 DepartmentServiceImpl 类添加实现

@Override
public void save(Map<String, Object> paramMap) {Department department = JSONObject.parseObject(JSONObject.toJSONString(paramMap), Department.class);Department targetDepartment = departmentRepository.getDepartmentByHoscodeAndDepcode(department.getHoscode(), department.getDepcode());if(null != targetDepartment) {//copy不为null的值,该方法为自定义方法BeanUtils.copyBean(department, targetDepartment, Department.class);departmentRepository.save(targetDepartment);} else {department.setCreateTime(new Date());department.setUpdateTime(new Date());department.setIsDeleted(0);departmentRepository.save(department);}
}

D、添加 repository 接口

在DepartmentRepository添加方法

Department getDepartmentByHoscodeAndDepcode(String hoscode, String depcode);

E、添加 controller 接口

在 ApiController 类添加接口

@Autowired
private DepartmentService departmentService;@ApiOperation(value = "上传科室")
@PostMapping("saveDepartment")
public Result saveDepartment(HttpServletRequest request) {Map<String, Object> paramMap = HttpRequestHelper.switchMap(request.getParameterMap());//必须参数校验 略String hoscode = (String)paramMap.get("hoscode");if(StringUtils.isEmpty(hoscode)) {throw new YyghException(ResultCodeEnum.PARAM_ERROR);}//签名校验if(!HttpRequestHelper.isSignEquals(paramMap, hospitalSetService.getSignKey(hoscode))) {throw new YyghException(ResultCodeEnum.SIGN_ERROR);}departmentService.save(paramMap);return Result.ok();
}

二、查询科室接口

一个医院有多个科室,因此我们采取分页查询方式

A、添加 service 接口

在 DepartmentService 类添加接口

/*** 分页查询* @param page 当前页码* @param limit 每页记录数* @param departmentQueryVo 查询条件* @return
*/
Page<Department> selectPage(Integer page, Integer limit, DepartmentQueryVo departmentQueryVo);

在 DepartmentServiceImpl 类添加实现

@Override
public Page<Department> selectPage(Integer page, Integer limit, DepartmentQueryVo departmentQueryVo) {Sort sort = Sort.by(Sort.Direction.DESC, "createTime");//0为第一页Pageable pageable = PageRequest.of(page-1, limit, sort);Department department = new Department();BeanUtils.copyProperties(departmentQueryVo, department);department.setIsDeleted(0);//创建匹配器,即如何使用查询条件ExampleMatcher matcher = ExampleMatcher.matching() //构建对象.withStringMatcher(ExampleMatcher.StringMatcher.CONTAINING) //改变默认字符串匹配方式:模糊查询.withIgnoreCase(true); //改变默认大小写忽略方式:忽略大小写//创建实例Example<Department> example = Example.of(department, matcher);Page<Department> pages = departmentRepository.findAll(example, pageable);return pages;
}

B、添加 controller 接口

在 ApiController 类添加接口

@ApiOperation(value = "获取分页列表")
@PostMapping("department/list")
public Result department(HttpServletRequest request) {Map<String, Object> paramMap = HttpRequestHelper.switchMap(request.getParameterMap());//必须参数校验 略String hoscode = (String)paramMap.get("hoscode");//非必填String depcode = (String)paramMap.get("depcode");int page = StringUtils.isEmpty(paramMap.get("page")) ? 1 : Integer.parseInt((String)paramMap.get("page"));int limit = StringUtils.isEmpty(paramMap.get("limit")) ? 10 : Integer.parseInt((String)paramMap.get("limit"));if(StringUtils.isEmpty(hoscode)) {throw new YyghException(ResultCodeEnum.PARAM_ERROR);}//签名校验if(!HttpRequestHelper.isSignEquals(paramMap, hospitalSetService.getSignKey(hoscode))) {throw new YyghException(ResultCodeEnum.SIGN_ERROR);}DepartmentQueryVo departmentQueryVo = new DepartmentQueryVo();departmentQueryVo.setHoscode(hoscode);departmentQueryVo.setDepcode(depcode);Page<Department> pageModel = departmentService.selectPage(page, limit, departmentQueryVo);return Result.ok(pageModel);
}

三、删除科室接口

根据医院编号与科室编号删除科室

A、添加 service 接口

在 DepartmentService 类添加接口

/*** 删除科室* @param hoscode
* @param depcode
*/
void remove(String hoscode, String depcode);

在 DepartmentServiceImpl 类添加实现

@Override
public void remove(String hoscode, String depcode) {Department department = departmentRepository.getDepartmentByHoscodeAndDepcode(hoscode, depcode);if(null != department) {//departmentRepository.delete(department);departmentRepository.deleteById(department.getId());}
}

B、添加 controller 接口

在 ApiController 类添加接口

@ApiOperation(value = "删除科室")
@PostMapping("department/remove")
public Result removeDepartment(HttpServletRequest request) {Map<String, Object> paramMap = HttpRequestHelper.switchMap(request.getParameterMap());//必须参数校验 略String hoscode = (String)paramMap.get("hoscode");//必填String depcode = (String)paramMap.get("depcode");if(StringUtils.isEmpty(hoscode)) {throw new YyghException(ResultCodeEnum.PARAM_ERROR);}//签名校验if(!HttpRequestHelper.isSignEquals(paramMap, hospitalSetService.getSignKey(hoscode))) {throw new YyghException(ResultCodeEnum.SIGN_ERROR);}departmentService.remove(hoscode, depcode);return Result.ok();
}

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

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

相关文章

医疗企业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…

SAP RETAIL系统与制造业SAP系统上关于补货的配置

SAP RETAIL系统与制造业SAP系统上关于补货的配置 笔者偶然发现&#xff0c;对于自动补货的配置&#xff0c;零售系统与制造业系统不尽相同。 1, 如下是SAP RETAIL系统的配置&#xff0c; 在IMG->MM->Consumption-Based Planning下有一个子菜单 Replenishment Control。 2…

SAP RETAIL 通过自动补货功能触发的采购申请有些啥特殊的地方?

SAP RETAIL 通过自动补货功能触发的采购申请有些啥特殊的地方&#xff1f; 采购申请10000643是由自动补货事务代码WRP1R触发的。看如下的WRMO (Replenishment Monitor) 的结果&#xff0c; 执行&#xff0c;进入如下结果&#xff0c; 进入该采购申请的显示界面&#xff0c; 在C…

SAP RETAIL 商品主数据里影响自动补货结果的几个参数 II

SAP RETAIL 商品主数据里影响自动补货结果的几个参数 II 这一篇继续测试商品主数据相关补货/MRP参数的设置对于自动补货事务代码WRP1R运行结果的影响。 3, 物料主数据设置 – Replenishment Parameters - Safety stock 字段 该物料在site NM03下无库存&#xff0c; 执行事务代码…