SQL Server数据库在试验阶段能够比较完整地实现系统功能,实际使用时需要依据每个医院的实际情况进行调整。导医系统应用于实际医院时可能需要另外构建一个数据库服务器,并与医院现有的HIS系统进行连接,以共享一套病人挂号科室等其他信息。

3 应用程序

导医终端上的应用程序采用QT4编程实现[6]。QT是一个基于C++的图形用户界面库。它的跨平台特性比较好,编辑好的程序代码几乎不需做修改就可以编译出运行于其他平台的可执行程序。应用程序的核心是检测串口接收缓冲区,当串口接收缓冲区存在有效的病人ID号,即依据该ID号发起一次数据库连接与检索。不同于普通PC环境,在ARMLinux平台下,需要解决三个核心问题:ARM-Linux下串口通信、汉字字符集兼容和SQL Server数据库连接等。

3.1 ARM-Linux下串口通信

QT下没有提供串口通信的控件,但是提供了第三方的串口通信类qextserialport。本系统即是采用该类完成了ARM-Linux下的串口通信。该类继承自QIODevice类,可分为Win_QextSerialPort和Posix_QextSerialPort,分别支持Windows和Linux两种环境下的编译。在Linux下需要添加 #define _TTY_POSIX_宏定义,以确保选择正确的条件编译。通过以下代码即可打开串口ttySAC3,并设置波特率为9 600 Kb/s,无流控制和奇偶校验, 8位数据位,1位停止位。

port=new Posix_QextSerialPort(“/dev/ttySAC3”,

QextSerialBase::EventDriven);

port-》setBaudRate(BAUD9600);

port-》setFlowControl(FLOW_OFF);

port-》setParity(PAR_NONE);

port-》setDataBits(DATA_8);

port-》setStopBits(STOP_1);

3.2 字符集的转换

Linux系统下汉字一般采用Unicode编码,而Windows系统下汉字一般采用GBK编码。如果将检索的结果做了不正确的转化,则显示的汉字将出现乱码。这个问题可从以下两个方面来解决:

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查