hospital_manager(service_hosp接口)

医院上传接口

hospital_manager系统用于医院端接口模拟,配合尚医通完成接口调试。
要写的接口还是在service_hosp里,每个医院有自己的页面,所有的医院统一调用service_hosp里的接口来实现上传等功能,统一。

数据库(涉及两个数据库,三个表)

hospital_manager的数据库是mysql的yygh_manager,里面事先存了这个医院自己的信息。这里面的hospital_set指的是这一个医院。
医院自己页面的“医院管理“导航显示的是Hospital这个类的信息,是存在mongoDB里的,通过service_hosp的HospitalServiceImpl加进去的。
而在存Hospital类的过程中需要对比签名,就需要从service_hosp的数据库yygh_hosp(mysql)的hospital_set找出对应的sign_key,与yygh_manager里的hospital_set进行对比,是通过service_hosp的HospitalSetServiceImpl实现的。

医院

实体类

Hospital
(注意实体类里的bookingRule属性,是之后预约挂号功能用到的)

controller

医院自己把接口地址封装到request里(hospital_magager的ApiServiceImpl方法)

JSONObject respone =
                HttpRequestHelper.sendRequest(paramMap,this.getApiUrl()+"/api/hosp/saveHospital");

service_hosp里的ApiController实现这个接口

//上传医院接口
    @PostMapping("saveHospital")
    //要得到那边post传过来的医院的信息,把信息加到数据库,所以参数要用HttpServletRequest
    public Result saveHosp(HttpServletRequest request) {
   
        //获取传递过来医院信息
        Map<String, String[]> requestMap = request.getParameterMap();
        Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);

        /*
        写在private方法里了
        //1 获取医院系统传递过来的签名,这里的签名已经进行MD5加密
        String hospSign = (String)paramMap.get("sign");

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

        //3 把数据库查询出来签名进行MD5加密,再与获取的签名进行比对
        String signKeyMd5 = MD5.encrypt(signKey);
        */
        //4 判断签名是否一致
        if(!signVerify(paramMap)) {
   
            throw new YyghException(ResultCodeEnum.SIGN_ERROR);
        }

        //传输过程中“+”转换为了“ ”,因此我们要转换回来
        String logoData = (String)paramMap.get("logoData");
        logoData = logoData.replaceAll(" ","+");
        paramMap.put("logoData",logoData);

        //调用service的方法
        hospitalService.save(paramMap);
        return Result.ok();
    }

不需要

不需要

医院自己把接口地址封装到request里(hospital_magager的ApiServiceImpl方法)

JSONObject respone = HttpRequestHelper.sendRequest(paramMap,this.getApiUrl()+"/api/hosp/hospital/show");

service_hosp里的ApiController实现这个接口

//查询医院
    @PostMapping("hospital/show")
    public Result getHospital(HttpServletRequest request) {
   
        //获取传递过来医院信息
        Map<String, String[]> requestMap = request.getParameterMap();
        Map<String, Object> paramMap = HttpRequestHelper.switchMap(requestMap);
        /*//获取医院编号
        String hoscode = (String)paramMap.get("hoscode");
        //1 获取医院系统传递过来的签名,签名进行MD5加密
        String hospSign = (String)paramMap.get("sign");

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

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

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

        String hoscode = (String)paramMap.get("hoscode");
        //调用service方法实现根据医院编号查询
        Hospital hospital = hospitalService.getByHoscode(hoscode);
        return Result.ok(hospital);
    }

service

public void save(Map<String, Object> paramMap) {
   
        //把参数map集合转换对象 Hospital,用json转换工具
        String mapString = JSONObject.toJSONString(paramMap);
        Hospital hospital = JSONObject.parseObject(mapString, Hospital.class);

        //判断是否存在数据,即查询
        String hoscode = hospital.getHoscode();
        Hospital hospitalExist = hospitalRepository.getHospitalByHoscode(hoscode);

        //如果存在,进行修改
        if(hospitalExist != null) {
   
            hospital.setStatus(hospitalExist
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
构建一个医院数据库管理系统,用MySql和Java实现。结果比医院实际需要的要小得多,但同时也比医生要求的要多。 在HDBMS/src/HDBMS Info/下提供了ERD、UML、登录系统的初始凭据,以及可以导入MySql的数据库备份(带有模式创建说明), 在DataScript下提供了我用来自动填充数据库表(使用自动生成的数据)的脚本。 我选择构建一个医院数据库管理系统,用MySql和Java实现。 结果比医院实际需要的要小得多,但同时也比医生要求的要多。在HDBMS/src/HDBMS Info/下提供了ERD、UML、登录系统的初始凭据, 以及可以导入MySql的数据库备份(带有模式创建说明),在DataScript下提供了我用来自动填充数据库表(使用自动生成的数据)的脚本。- ->注意:您需要在HDBMS/src/DatabaseAPI中的DatabaseAPI类中输入MySql服务器的用户名和密码/DatabaseHandler.java 实现了核心数据库API。 软删除实现-没有从数据库中删除-历史友好。 遵循编程和面向对象的最佳实践。 实现了具有不同访问权限的多个用户类型。 例外情况应谨慎处理。 所有表视图(在GUI中)至少跨越2个HDBMS表。 材料设计登录窗口。 使用外部增强的、外观现代的JavaFX库。 实现每个用户类型的最佳需求,易于使用,功能强大。 在几乎每个GUI窗口的底部提供一个“状态”栏,以通知用户所请求的操作(查询)的结果。 为每个GUI使用一个特殊的图标。 对于所有输入字段的组,它首先检查是否所有字段都填充了正确格式的数据,例如: A.患者/员工姓名:至少3个字符,均为字母 B.患者/员工ID:至少7个字符,均为数字 C.患者/员工的出生日期:不能来自未来 D.患者/员工电话号码:至少7个字符,均为数字 约定的日期和时间不能是过去的 F.在添加预约(或处方)前检查患者是否存在患者的病患 G.在添加约会之前,检查时间段是否空闲 H.将处方成本添加到记录之前,检查其是否为有效的正数字格式 一、员工用户名:至少5个字符,至少1个字母,只允许字母和数字 J.在添加新员工的用户名之前,首先检查该用户名是否已存在 K.检查密码和重密码是否匹配 L.员工工资:必须有一个有效的正数值 M.仅当新地址是唯一的时才添加新地址,否则将获取现有地址的adrID

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值