患者管理及其接口的开发

发布时间 2023-04-18 15:56:46作者: 葬爱_坤疤

接口的开发:

查询所有的患者的信息

  • 其中设计到单张表(TbUser表)

  • 后台管理,直接显示出所有患者信息列表

  • Controller

    • /**
      * 后台管理查询所有患者的信息
      * @return
      */
      @GetMapping("/selectUserInfoList")
      public AjaxResult selectUserInfoList(){
         List<TbUser> tbUsers = tbUserService.selectUserInfo();
         List list1 = new ArrayList();
         int size = tbUsers.size();
         if (size!=0){
             return AjaxResult.success("操作成功",tbUsers,size);
        }else {
             return AjaxResult.success("操作失败",list1,size);
        }

      }
  • ITbUserService

    • /**
      * 查询用户患者所有信息
      * @return 结果
      */
      public List<TbUser> selectUserInfo();
  • TbUserServiceIpml

    • /**
      * 查询所有的患者的信息
      * @return
      */
      @Override
      public List<TbUser> selectUserInfo() {
         List<TbUser> list = iTbUserService.list(null);
         return list;
      }

 

模糊查询患者的信息

  • 其中设计到单张表(TbUser表)

  • 我在后台管理的中有一个功能是查询功能,这里就涉及到这个模糊的查询,填写的参数有三个

  • Controller

    • /**
      * 模糊查询查询该用户的基本信息后台管理
      */
      @GetMapping("/getUserIdInfo")
      public AjaxResult getUserIdInfo(String name,String cardNumber,String phonenumber){
         List<TbUser> userIdInfo = tbUserService.getUserIdInfo(name,cardNumber,phonenumber);
         int size = userIdInfo.size();
         List list1 = new ArrayList();
         if (size!=0){
             return AjaxResult.success("操作成功",userIdInfo,size);
        }else {
             return AjaxResult.success("操作失败",list1,size);
        }

      }
  • ITbUserService

    • /**
          * 根据userID查询该用户的基本信息后台管理
          * @param
          * @return
          */
         List<TbUser> getUserIdInfo(String name,String cardNumber,String phonenumber);
  • TbUserServiceIpml

    • /**
          * 根据userID查询该用户的基本信息后台管理
          * @return
          */
         @Override
         public List<TbUser> getUserIdInfo(String name,String cardNumber,String phonenumber) {
             LambdaQueryWrapper<TbUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
             LambdaQueryWrapper<TbUser> like = lambdaQueryWrapper.like(StringUtils.isNotBlank(name), TbUser::getName, name)
                    .like(StringUtils.isNotBlank(cardNumber), TbUser::getCardNumber, cardNumber)
                    .like(StringUtils.isNotBlank(phonenumber), TbUser::getPhonenumber, phonenumber);
             List<TbUser> list = list(like);

             return list;
        }

根据片区查询出其中的患者

  • 其中设计到单张表(TbUser表)

  • 后台管理的中有一个功能是筛选片区患者的功能,这里就涉及到这个查询,将返回给你的areaId到患者表中找了同一个片区的所有患者

  • Controller

    • @Autowired
        private ITbUserService iTbUserService;

        /**
         * 根据片区查询出其中的患者
         * @param areaId
         * @return
         */
        @GetMapping("/selectAreaIdList")
        public AjaxResult selectAreaIdList(Long areaId){
            List list1 = new ArrayList();
            LambdaQueryWrapper<TbUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
            lambdaQueryWrapper.eq(TbUser::getAreaId,areaId);
            List<TbUser> list = iTbUserService.list(lambdaQueryWrapper);
            if (list.size()!=0){
                return AjaxResult.success("查询成功",list,list.size());
            }else
                return AjaxResult.success("暂无数据",list1,list.size());

        }

       

修改用户的信息后台管理

  • 其中设计到单张表(TbUser表)

  • 后台管理的患者的信息有误,就要进行修改

  • Controller

    • /**
      * 修改用户的信息后台管理
      * @param userInfo
      * @return
      */
      @PutMapping("/updataUserIdInfo")
      public AjaxResult updataUserIdInfo(UserInfo userInfo){
         boolean b = tbUserService.updateUserIdInfo(userInfo);
         return AjaxResult.success(b);
      }
  • ITbUserService

    • /**
      * 修改后台管理的用户信息
      * @param userInfo
      * @return
      */
      boolean updateUserIdInfo(UserInfo userInfo);
  • TbUserServiceIpml

    • /**
      * 修改用户的个人信息后台管理
      * @param userInfo
      * @return
      */
      @Override
      public boolean updateUserIdInfo(UserInfo userInfo) {
         boolean update=false;
         LambdaQueryWrapper<TbUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(TbUser::getUserId,userInfo.getUserId());
         TbUser one = iTbUserService.getOne(lambdaQueryWrapper);
         one.setName(userInfo.getName());
         one.setCardNumber(userInfo.getCardNumber());
         one.setSex(userInfo.getSex());
         one.setBirth(userInfo.getBirth());
         one.setPhonenumber(userInfo.getPhonenumber());
         one.setHomeAddress(userInfo.getHomeAddress());
         one.setWorkUnit(userInfo.getWorkUnit());
         one.setNation(userInfo.getNation());
         one.setLiveAlone(userInfo.getLiveAlone());
         one.setHeight(userInfo.getHeight());
         one.setWeight(userInfo.getWeight());
         one.setChestMeasurement(userInfo.getChestMeasurement());
         one.setBloodFat(userInfo.getBloodFat());
         one.setTotalCholesterol(userInfo.getTotalCholesterol());
         one.setHighDensityLipoprotein(userInfo.getHighDensityLipoprotein());
         one.setLowDensityLipoprotein(userInfo.getLowDensityLipoprotein());

         update = iTbUserService.update(one, lambdaQueryWrapper);


         return update;
      }

问题及解决

没有该数据bug

 

分析:就是在user表中的字段要连接关联的一些表,当user表中的数据为空,根据找不到关联表中的数据了

学习重点及理解

查询所有患者的接口调用

  • user1.js

    • // 查询用户列表
      export function listUser1(query) {
       return request({
         url: '/business/user/selectUserInfoList',
         method: 'get',
         params: query
      })
      }
  • user1.vue

    • /** 查询用户列表 */
         getList() {
           this.loading = true;
           listUser1(this.queryParams).then(response => {
             this.user1List = response.data.slice((this.queryParams.pageNum-1)*this.queryParams.pageSize,(this.queryParams.pageNum-1)*this.queryParams.pageSize+this.queryParams.pageSize);
             this.total = response.total;
             this.loading = false;

          });
        },
         

修改患者的接口调用

  • user1.js

    • // 修改用户
      export function updateUser1(params) {
       return request({
         url: '/business/user/updataUserIdInfo',
         method: 'put',
         params
      })
      }
  • user1.vue

删除患者的接口调用

  • user1.js

    • // 删除用户
      export function delUser1(params) {
       return request({
         url: '/business/user/deleteUserInfoAll',
         method: 'delete',
         params
      })
      }
  • user1.vue

    • /** 修改按钮操作 数据回显*/
         handleUpdate(row) {
           this.reset();
           const userId = row.userId || this.ids
           const name = row.name || this.ids
           const cardNumber = row.cardNumber || this.ids
           const sex = row.sex || this.ids
           const birth = row.birth || this.ids
           const phonenumber = row.phonenumber || this.ids
           const homeAddress = row.homeAddress || this.ids
           const workUnit = row.workUnit || this.ids
           const nation = row.nation || this.ids
           const liveAlone = row.liveAlone || this.ids
           const height = row.height || this.ids
           const weight = row.weight || this.ids
           const chestMeasurement = row.chestMeasurement || this.ids
           const bloodFat = row.bloodFat || this.ids
           const totalCholesterol = row.totalCholesterol || this.ids
           const highDensityLipoprotein = row.highDensityLipoprotein || this.ids
           const lowDensityLipoprotein = row.lowDensityLipoprotein || this.ids

           // getUser1(name).then(response => {
             this.form.userId = userId;
             this.form.name = name;
             this.form.cardNumber = cardNumber;
             this.form.sex = sex;
             this.form.birth = birth;
             this.form.phonenumber = phonenumber;
             this.form.homeAddress = homeAddress;
             this.form.workUnit = workUnit;
             this.form.nation = nation;
             this.form.liveAlone = liveAlone;
             this.form.height = height;
             this.form.weight = weight;
             this.form.chestMeasurement = chestMeasurement;
             this.form.bloodFat = bloodFat;
             this.form.totalCholesterol = totalCholesterol;
             this.form.highDensityLipoprotein = highDensityLipoprotein;
             this.form.lowDensityLipoprotein = lowDensityLipoprotein;
             this.open = true;
             this.title = "修改用户";
           // });
        },
         /** 提交按钮 */
         submitForm() {
           this.$refs["form"].validate(valid => {

             if(this.form.userId!=null){
               updateUser1({userId: this.form.userId,  name: this.form.name,cardNumber: this.form.cardNumber,
                             sex: this.form.sex, birth: this.form.birth, phonenumber: this.form.phonenumber,
                           homeAddress: this.form.homeAddress, workUnit: this.form.workUnit, nation: this.form.nation,
                         liveAlone: this.form.liveAlone, height: this.form.height, weight: this.form.weight,
                       chestMeasurement: this.form.chestMeasurement,bloodFat: this.form.bloodFat, totalCholesterol: this.form.totalCholesterol,
                     highDensityLipoprotein: this.form.highDensityLipoprotein, lowDensityLipoprotein: this.form.lowDensityLipoprotein});
                 this.$modal.msgSuccess("修改成功");
                 this.open = false;
                 setTimeout(() => {this.getList();}, 500);
              }

           
          });
        },

模糊查询接口调用

  • user1.js

    • // 模糊查询用户详细
      export function getUser1(params) {
       return request({
         url: '/business/user/getUserIdInfo',
         method: 'get',
         params
      })
      }
  • user1.vue

    • //模糊查询
         likeList(name,cardNumber,phonenumber){
           this.loading = true;
           getUser1({name: name,cardNumber: cardNumber,phonenumber: phonenumber}).then(response => {
             this.user1List = response.data.slice((this.queryParams.pageNum-1)*this.queryParams.pageSize,(this.queryParams.pageNum-1)*this.queryParams.pageSize+this.queryParams.pageSize);
             this.total = response.total;
             this.loading = false;
          });
        },
         
         
      /** 搜索按钮操作 */
         handleQuery() {
           this.queryParams.pageNum = 1;
           this.likeList(this.queryParams.name,this.queryParams.cardNumber,this.queryParams.phonenumber)
        },

       

 

扩展学习

筛选片区的接口调用

  • user1.js

    • // 下拉列表
      export function selectAreaist(query) {
       return request({
         url: '/system/area/selectList',
         method: 'get',
         params: query
      })
      }

      // 根据片区查询出其中的患者
      export function selectAreaIdList(params) {
       return request({
         url: '/system/area/selectAreaIdList',
         method: 'get',
         params
      })
      }
  • user1.vue

    • <!--下拉列表-->
      <el-dropdown trigger="click" >
      <el-button type="primary">
        筛选片区<i class="el-icon-arrow-down el-icon--right" ></i>
      </el-button>
      <el-dropdown-menu slot="dropdown" >
        <template v-for="(item) in this.area1List">
          <template>
            <el-dropdown-item @click.native = "delMemoHandler(item.areaId)" >{{ item.areaName }}</el-dropdown-item>
          </template>
        </template>
      </el-dropdown-menu>
      </el-dropdown>


      export default {
       name: "User1",
       data() {
         return {
             //下拉列表
           area1List: [],
        };
      },
       created() {
         this.getList();
           //下拉列表
         this.handleClick();
      },
       methods: {
         
         delMemoHandler( id) {
           console.log(id)
      //使用过滤器筛选出id不等于要删除的数据的所有对象,并将其重新赋值给list数组
             selectAreaIdList({areaId: id}).then(response => {
             this.user1List = response.data;
             this.total = response.total;
             this.loading = false;

          });

        },

         //下拉列表
         handleClick() {
                 /**下拉列表 */
           selectAreaist().then(response => {
             this.area1List=response.data;
             console.log(this.area1List);
          });


          },
      }
      };
      </script>

       

总结

今天的学习状态是不错的,完成了患者管理及其接口的开发,对于患者管理其中包含的内容是非常的多,我直接提取了其中的一部分的内容,也是单表的页面这样比较方便。但是其中的接口很多是没有的,我又开发了修改接口,模糊查询接口,查询所有接口。