刷卡、扫码、插卡获取卡号,根据卡号请求数据;

news2025/1/14 0:52:37

业务需求:医院会进行刷卡 扫码 插卡等操作快速获取患者信息

一、刷卡和扫码

刷卡和扫码其实是同一种操作。刷卡/扫码和普通的键盘输入的区别就是:刷卡/扫码的速度快,而普通的键盘输入的速度慢。

<el-input
   v-model="form.cardNo"
   @keyup.native="($event) => {handleCardNoChange2($event)}"
   autofocus>
</el-input>

handleCardNoChange2(e, r, t) {
   this.keydown(e, r, t);
},

//监听键盘事件
keydown(e, r, t) {
  this.readCardFlag = false
  let nowdate = Date.now();
  let key = window.event.keyCode;//key=13或108时为键盘的enter键
  if (key == 13 || key == 108) {
    if (nowdate - (this.lastdate || 0) <= 30) {
      //距上次按键间隔小于30毫秒,则为扫码枪或刷卡输入
      this.readCardFlag = true //扫码标识
      this.lastdate = null;
      -----------------------------
      this.search('scanInput')
    }else{
      // 距上次按键间隔大于30毫秒,则为人工输入
      this.readCardFlag = false //扫码标识
      this.search('handInput')
    }
  } else {
    //console.log('键盘事件非enter键');
    this.readCardFlag = false
    this.lastdate = nowdate;
  }
},

更新:近日发现扫码的时候,现场确不触发 this.search('scanInput')函数,查明原因是因为扫码的时候设置了中文输入法将键盘的enter事件(keycode:13)吞了,所以没办法触发查询,改为英文就可以即可。但是用户不可能每次在扫码前都手动去切换输入法为英文,太不人性化了。

解决方式:查询参考VUE扫码枪中文输入法兼容自动回车事件(下)_条形码扫描后有回车事件_Jessie.Zhai的博客-CSDN博客

但感觉很麻烦,有更简单方式的可以交流! 

二、插卡

插卡和刷卡是不一样的,刷卡可以直接获取到卡号,而插卡的卡一般是芯片卡,,而插卡是需要联调dll的接口去请求查询芯片卡的信息。

1、需要一个按钮触发读卡事件

2、触发读卡

<el-button
  type="primary"
  @click="readCard"
  :disabled="form.searchBtnDisabled">
    读卡
</el-button>

readCard(){
      this.insertCardFlag = true
      let nowDate = moment().startOf("day").format("YYYYMMDD");//20230908
      let nowTime = moment().format('YYYY-MM-DD HH:mm:ss');//2023-09-08 12:20:01
      let serialNum = 100000000 || Math.random().toString().slice(-9)
            if (localStorage.cardId) {
                serialNum = parseInt(localStorage.cardId) + 1;
            }
            localStorage.cardId = serialNum;
      let hospitalCode = '12345678800'
      let dataJson = {
            "jysj":nowTime,//2023-09-05 07:16:42
            "xxlxm":"S000",
            "xxfhm":"",
            "fhxx":"",
            "bbh":"0001",
            "msgid":  `${hospitalCode}${nowDate}${serialNum}`,//医疗机构代码11位+日期8位+流水号9位
            "xzqhdm":"",
            "jgdm":hospitalCode,//医疗机构代码
            "czybm":"4910",
            "czyxm":"秦红娟",
            "xxnr":{
                "cardtype":"1",
                "carddata":""
            },
            "jyqd":"10",
            "jyyzm":"",
            "zdjbhs":""
        }
      insertCard(JSON.stringify({Ab: JSON.stringify(dataJson)})).then(
          (res) => {
            let cardRes = JSON.parse(res)
              if(cardRes.xxnr && cardRes.xxnr?.kh){//查到卡号的时候才走查询
                this.form.cardNo = cardRes.xxnr?.kh//卡号
                this.insertCardRes = cardRes.xxnr
                this.search()
              }else{
                this.insertCardFlag = false
                this.$message.warning(cardRes.fhxx)
              }
          }
        ).catch((error) => {
          this.$message.error('读卡失败!请联系管理员')
          // 测试读卡接口:展示患者基本信息
          // let testPat = {
          //   xm:'测试111',
          //   xb:1,
          //   sfzh:'110101202311074158',
          //   lxdh:'13777778898',
          //   txdz:'上海市普陀区大渡河路',
          // }
          // this.$bus.$emit('showPatBasicInfo',testPat)
        })
    },

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【黑马甄选离线数仓day03_数仓设计和维度域开发】

1. 数仓基本概念 1- 什么是数据仓库呢? 存储数据的仓库, 主要用于存储过去历史发生过的数据,面向主题, 对数据进行统计分析的操作, 从而能够对未来提供决策支持 2- 数据仓库最大的特点是什么呢? 数据仓库既不生产数据, 也不消耗数据, 数据来源于各个数据源 3- 数据仓库的四…

uniapp打包的ipa上架到appstore的傻瓜式教程

​ 转载&#xff1a;uniapp打包的ipa上架到appstore的傻瓜式教程 uniapp打包 在HBuilder X编辑器中打开需要打包的项目&#xff0c;然后点击上面菜单栏中 发行 > 原生App-云打包&#xff0c;对以下弹出的弹窗进行内容填写 ​ 填写完成以后&#xff0c;点击打包操作 ​ ​ …

FreeSWITCH学习笔记:EventSocket

Event Socket命令最后需带有两个换行符。 api 执行API命令。阻塞。 1api API [ARG [ ...]] auth 内连模式下身份验证。需要第一个发送。 1auth PASSWORD bgapi 后台执行API命令。不阻塞。 1bgapi API [ARG [ ...]]2[Job-UUID: UUID] 返回带有Job-UUID。当API命令执行完成…

用自己热爱的事赚钱,是多么的幸福

挖掘天赋可能有些困难&#xff0c;但挖掘爱好就简单多啦&#xff01;最幸福的事情就是能用自己喜欢的事情赚钱。 我们要说的是一个博主&#xff0c;他非常喜欢骑自行车&#xff0c;虽然他的工作是在外贸公司做销售&#xff0c;但每当有空时&#xff0c;他都会骑自行车。而且他…

2023年亚太地区数学建模大赛 C 题

我国新能源电动汽车的发展趋势 新能源汽车是指以先进技术原理、新技术、新结构的非常规汽车燃料为动力来源&#xff08;非常规汽车燃料指汽油、柴油以外的燃料&#xff09;&#xff0c;将先进技术进行汽车动力控制和驱动相结合的汽车。新能源汽车主要包括四种类型&#xff1a;…

eclipse项目移到idea上部署运行

1.配置web模块 另外&#xff0c;模块这里&#xff0c;也要加上Spring 2.配置Artifact &#xff08;用于tomcat&#xff09; 就是从上面配置的web模块&#xff0c;产生的工件 3.添加lib 一般是在web-inf/lib &#xff0c; 遇到的坑&#xff1a; jdk版本问题&#xff0c;这里…

计算机毕业设计——基于SpringBoot+Bootstrap框架的学生宿舍管理系统的设计与实现

计算机毕业设计——基于SpringBoot+Bootstrap框架的学生宿舍管理系统的设计与实现 摘 要:近年来,随着高等教育的快速发展,大学生的人数日益增加,然而部分高校仍以人工记录的方式进行管理。针对这种传统管理方式,为进一步优化宿舍的管理效率,通过使用 Springboot 架构模式…

ATA-2042高压放大器在细胞的剪切应力传感器研究中的应用

微流控技术是一种通过微小的通道和微型装置对流体进行精确操控和分析的技术。它是现代医学技术发展过程中的一种重要的生物医学工程技术&#xff0c;具有广泛的应用前景和重要性。它在高通量分析、个性化医疗、细胞筛选等方面有着巨大的潜力&#xff0c;Aigtek安泰电子今天就将…

Android 提示框代码 java语言

在Android中&#xff0c;你可以使用 AlertDialog 类来创建提示框。以下是一个简单的Java代码示例&#xff0c;演示如何创建和显示一个基本的提示框&#xff1a; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; im…

ArkUI开发进阶—@Builder函数@BuilderParam装饰器的妙用与场景应用

ArkUI开发进阶—Builder函数BuilderParam装饰器的妙用与场景应用 HarmonyOS&#xff0c;作为一款全场景分布式操作系统&#xff0c;为了推动更广泛的应用开发&#xff0c;采用了一种先进而灵活的编程语言——ArkTS。ArkTS是在TypeScript&#xff08;TS&#xff09;的基础上发展…

使用骨传导耳机会伤耳朵吗?一文读懂骨传导耳机有哪些优点

首先说明&#xff0c;如果是正确的使用骨传导耳机是不会伤耳朵。 一、骨传导耳机的传声原理是什么&#xff1f; 声音的传播需要介质&#xff0c;传统的耳机是通过空气来进行传播&#xff0c;也被称为“空气传导耳机”&#xff0c;而骨传导耳机最大的特别之处就在于&#xff0…

ke12Servlet规范有三个高级特性,,文件上传下载

1Servlet规范有三个高级特性 分别是Filter、Listener和文件的上传下载。Filter用于修改request、response对象&#xff0c;Listener用于监听context、session、request事件。 熟悉Filter的生命周期 了解Filter及其相关API 掌握Filter的实现 掌握Filter的映射与过滤器链的使用…

CTA-GAN:基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影 CT到增强CT的合成技术

Generative Adversarial Network–based Noncontrast CT Angiography for Aorta and Carotid Arteries 基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影背景贡献实验方法损失函数Thinking 基于生成对抗性网络的主动脉和颈动脉非集中CT血管造影 https://github.com/ying-f…

Navicat 技术指引 | 连接 GaussDB 主备版

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持对GaussDB 主备版的管理和开发功能。它不仅具备轻松、便捷的可视化数据查看和编辑功能&#xff0c;还提供强大的高阶功能&#xff08;如模型、结构同步、协同合作、数据迁移等&#xff09;&#xff0c;这…

黑马点评笔记 redis缓存三大问题解决

文章目录 缓存问题缓存穿透问题的解决思路编码解决商品查询的缓存穿透问题 缓存雪崩问题及解决思路缓存击穿问题及解决思路问题分析使用锁来解决代码实现 逻辑过期方案代码实现 缓存问题 我们熟知的是用到缓存就会遇到缓存三大问题&#xff1a; 缓存穿透缓存击穿缓存雪崩 接…

2021年03月 Scratch(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共25题,每题2分,共50分) 第1题 在《采矿》游戏中,当角色捡到黄金时财富值加1分,捡到钻石时财富值加2分,下面哪个程序实现这个功能? A: B: C: D: 答案:D A将变量值固定,BC为双重判断

SPSS系统聚类

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…

短视频获客系统成功分享,与其开发流程与涉及到的技术

先来看实操成果&#xff0c;↑↑需要的同学可看我名字↖↖↖↖↖&#xff0c;或评论888无偿分享 一、短视频获客系统的开发流程 1. 需求分析&#xff1a;首先需要对目标用户进行深入了解&#xff0c;明确系统的功能和目标&#xff0c;制定详细的需求文档。 2. 系统设计&#…

Android开发从0开始(ContentProvider与数据)

内容提供者&#xff1a;ContentProvider 为App存取内部数据提供外部接口&#xff0c;让不同应用共享数据。 ①在配置里AndroidManifest.xml <provider android:name".UserInfoProvider" android:authorities"com.example.chapter07_server.provider.U…

springboot+vue基本微信小程序的旅游社系统

项目介绍 现今市面上有关于旅游信息管理的微信小程序还是比较少的&#xff0c;所以本课题想对如今这么多的旅游景区做一个收集和分类。这样可以给身边喜欢旅游的朋友更好地推荐分享适合去旅行的地方。 前端采用HTML架构&#xff0c;遵循HTMLss JavaScript的开发方式&#xff0…