尚医通 (二十六) --------- 科室接口开发
创始人
2024-02-03 15:45:39

目录

  • 一、上传科室接口
    • 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 {}

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 paramMap);

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

在 DepartmentServiceImpl 类添加实现

@Override
public void save(Map 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 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 selectPage(Integer page, Integer limit, DepartmentQueryVo departmentQueryVo);

在 DepartmentServiceImpl 类添加实现

@Override
public Page 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 example = Example.of(department, matcher);Page pages = departmentRepository.findAll(example, pageable);return pages;
}

B、添加 controller 接口

在 ApiController 类添加接口

@ApiOperation(value = "获取分页列表")
@PostMapping("department/list")
public Result department(HttpServletRequest request) {Map 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 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 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();
}

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...