门急诊排队叫号系统demo的基本实现

1. 门诊排队叫号系统

这里写图片描述

2. 基于QT实现UDP协议的发送

    //.h,头文件声明与UDP相关的类的头文件.
    #include <QHostAddress>
    #include <QUdpsocket>

    typedef QSharedPointer<QUdpSocket> QUdpSocketPtr;
    QUdpSocketPtr m_udpSocketSender;
    QUdpSocketPtr m_udpSocketGetter;

    //.cpp,源文件编写发送UDP命令包的逻辑.
    m_udpSocketSender = QUdpSocketPtr(new QUdpSocket);
    m_udpSocketGetter = QUdpSocketPtr(new QUdpSocket);

    //指明主机和接收广播的机器ip都是本机:127.0.0.1
    QHostAddress *host  = new QHostAddress("127.0.0.1");
    QHostAddress *bcast = new QHostAddress("127.0.0.1");

    //门诊叫号软件开放5020端口,接受HIS系统发送的UDP指令包.
    m_udpSocketSender->connectToHost(*bcast,5020);

    //负责监听发送UDP指令的那个端口号,以便接受叫号软件的5020端口返回的消息串.
    qint16 portNum = m_udpSocketSender->localPort();
    m_udpSocketGetter->bind(*host, m_udpSocketSender->localPort());

    bool isConnect = false;
    isConnect = m_udpSocketGetter->connect(m_udpSocketGetter, SIGNAL(readyRead()), m_udpSocketGetter, SLOT(readPendingDatagrams()));

    //主机负责发送UDP报文,报文的内容为字符串,内容为"This is a test string."
    QString sendMsg = QString("This is test string.");
    QByteArray *datagram = new QByteArray(sendMsg.toUtf8());
    m_udpSocketSender->write(*datagram);

3. demo的开发与测试

以下是根据文档,开发完成后的简单demo,可以模拟在实际门诊排队叫号系统运行时,HIS系统和叫号软件之间的UDP消息传输。 
这里写图片描述

这里写图片描述

当在Web界面上点击“下一位”按钮时,网页会向叫号软件的5020端口发送如下UDP报文: 
Action:LonbonTriageCall 
Cmd:1 //Cmd是叫号软件的命令识别码,1-下一位;2-重呼;3-呼叫特定Sn; 4-过号;5-受理 
Sn:0 //Sn是挂号的病人的挂号流水号。 
MsgId:1 // MsgId是记录消息的次序,从1~9999取值。

这里写图片描述

参考链接:

  1. QT如何发送和接收UDP报文 
    https://stackoverflow.com/questions/6515589/how-do-i-send-and-receive-udp-packets-in-qt
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
HISDemo源码 系统分了几个逻辑层,对于层与层之间的调用我们要实现一下几点: 1.层与层之间只通过接口调用 2.接口所对应的具体实现通过XML配置指定 3.可能会对接口实例的生存周期进行管理 这里我们使用Unity的依赖注入容器(Dependency Injection, DI)去实现 数据访问层Repositories:主要用NHibernate访问数据库,但也有可能去访问其他模块或系统的WebService,也有可能用Linq去访问一些缓存(内存中的)数据,也有可能访问XML,文本文件等等.... 业务领域层Core:系统的核心层,所有与数据访问无关的业务逻辑都应该内聚在这里,业务领域对象理论上应该是充血的,内聚自己的业务逻辑。但有一些业务逻辑在设计的时候涉及到了多个业务领域对象 ,我们很难决定放在哪个具体的业务对象里,所以我们有一个Service层来放这种业务逻辑。 外观层(设计模式之外观模式)Facade:把数据访问接口,业务领域对象的业务逻辑,Service接口简单的封装一下成为Facade层接口供展示层UI或SOA层调用,这个层需要注意的是它只是简单的封装,免得UI层调太多层的接口,这层不应含有业务逻辑。 SOA层:因为系统比较庞大 模块很多,且业务上要求各大模块间需要一定解耦,所以这一层作用是作为各大粗粒度模块间调用以及给其他系统调用,比如有基础数据管理大模块和门诊挂大模块,他们之间的调用是必须要通过SOA层的,而不能直接走Facade层,传输的对象应该新建DTO数据传输对象,而不应该直接传递业务领域对象,从而通过SOA层我们把各个粗粒度模块完全隔离开。这个层取名为SOA也许不大恰当,大家也不必深究...计划是采用WCF 这样可以灵活的配置通讯方式 表现层Presentation:由Asp.net MVC的Action给ExtJs传输数据 ,Controler只需调用Facade接口 公共类库FrameWork:整个项目框架的公用代码,相当于公共类库
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值