MongoDB的医院信息,科室,排班等功能

上传医院接口

大致流程:hoscode,hosname,hostype,provinceCode,cityCode等等这些信息被撞到一个map集合中,然后JSONObject respone = HttpRequestHelper.sendRequest(paramMap,this.getApiUrl()+"/api/hosp/saveHospital");
的方式将数据传给我们要实现的saveHospital接口,在sendRequest中将paramMap通过StringBuilder封装,然后通过Post方式提交,saveHospital接口在接收参数的时候用HttpServletRequest request接收,然后将医院的数据通过mongodb保存。

  • 在HospitalServiceImpl中写save方法用来将上传的医院信息保存到Mongo中
  • 用JSONObject将paramMap解析成Josn,然后HospitalRepository判断数据是否存在,即执行的是修改还是更新操作。
        Hospital hospital = JSONObject.parseObject(JSONObject.toJSONString(paramMap),Hospital.class);
        //判断是否存在
        Hospital targetHospital = hospitalRepository.getHospitalByHoscode(hospital.getHoscode());
  • 注意HospitalRepository是继承MongoRepository,并且MongoRepository是有命名规范的,按照命名格式就不需要自己写方法。
  • 在模拟医院的接口中模拟数据的上传,需要注意的是URl和Code的值在这里插入图片描述

签名校验

比对医院系统经过加密的Sign和数据库中医院的Sign是否一致,一致则将医院的文档信息添加到Mongo的数据库中

//1 获取医院系统传递的签名
        String hospSign=(String)paramMap.get("sign");

        //2 根据传递过来的医院编码,查询数据库,查询签名
        String hoscode=(String)paramMap.get("hoscode");
        String signKey=hospitalSetService.getSignKey(hoscode);

        //3 把数据库查询签名进行MD5加密
        String signKeyMd5= MD5.encrypt(signKey);

        //4 判断签名是否一致
        if(!hospSign.equals(signKeyMd5)){
            throw new YyghException(ResultCodeEnum.SIGN_ERROR);
        }

科室上传接口

类似于医院信息上传接口,gethoscode获取医院编号,进行签名校验,交给service的save方法进行科室上传。

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);
            targetDepartment.setUpdateTime(new Date());
            targetDepartment.setIsDeleted(0);
            departmentRepository.save(targetDepartment);
        } else {
            department.setCreateTime(new Date());
            department.setUpdateTime(new Date());
            department.setIsDeleted(0);
            departmentRepository.save(department);
        }
    }

科室查询(分页)

  • 在模拟医院的接口中会传递分页参数pageNum和pageSzie,将这俩参数传给模拟医院的service中,将参数封装到ParamMap中交给request传给预约挂号平台的deparment接口。
  • 然后和之前一样, 先获取hoscode,签名校验,将参数封装到Vo对象中交给service做查询处理。
  • Service中,Mongo进行模糊查询,findAll方法中需要传一个匹配器Example和pageable对象。
  • 注:deparmentVo是用来接收request参数的实体类,而deparment是用来查询的实体类
    public Page<Department> selectPage(int page, int limit, DepartmentQueryVo departmentQueryVo) {
        //创建pageable对象,设置当前页和每页记录数
        //0为第一页
        Pageable pageable = PageRequest.of(page-1, limit);

        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;
    }

删除科室

departmentRepository的getDepartmentByHoscodeAndDepcode方法先获取科室

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

排班的上传,查询,删除功能与之前类似

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python MongoDB 学生信息管理系统是一个使用 Python 编程语言和 MongoDB 数据库开发的管理学生信息的系统。该系统可以实现学生的增加、删除、修改和查询等功能。 首先,在使用该系统之前,需要安装并配置 Python 和 MongoDB。Python 是一种简单易学的编程语言,而 MongoDB 是一种开源的非关系型数据库。安装好这两者之后,可以使用 Python 的第三方库 pymongo 来连接和操作 MongoDB 数据库。 在系统中,学生信息将包括学生的学号、姓名、性别、年龄等基本信息。用户可以通过命令行交互式界面(CLI)来进行相关的操作。比如,可以输入 "add" 命令来添加学生信息,输入 "delete" 命令来删除学生信息,输入 "update" 命令来修改学生信息,输入 "query" 命令来查询学生信息。 在添加学生信息时,用户需要依次输入学生的学号、姓名、性别和年龄等信息,并将其保存到 MongoDB 数据库中。删除学生信息时,用户需要输入要删除的学生的学号,系统将根据学号删除对应的学生信息。修改学生信息时,用户需要输入要修改的学生的学号和修改后的信息,系统将根据学号找到对应的学生信息并进行修改。查询学生信息时,用户可以输入要查询的学号,系统将返回对应学生的详细信息。 通过使用 Python 与 MongoDB 的结合,该学生信息管理系统可以实现快速、高效和灵活的学生信息管理。用户可以方便地进行学生信息的增删改查操作,并且可以根据需要进行扩展和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值