1.本发明涉及区块链技术领域,具体涉及一种预约方法、区块链系统、电子设备、计算机可读介质。
背景技术:2.长期需要输血小板或者输血红蛋白的患者,往往血红蛋白低于60就出现乏力昏厥等症状,血小板低于20就可能出现内出血或者外出血等情况,更严重的,当血小板低于10时,患者就有可能出现脑出血,危及患者的生命。
3.而在现有的医疗体系中,患者需要输血、尤其是需要输血小板、或者输血红蛋白时,需要患者携带自己在该医院或者其他被该医院承认的医院的血常规化验单,去医院的急诊或者血液科门诊挂号,等待医生叫号后,由医生开出对应的输血小板、或者输血红蛋白的预约单后,患者携带预约单去护士站采血样,并在采血样完成后送自己的血样到该医院的血库进行预约。
4.血库医生根据该患者的血样信息,对血库现有的血红蛋白或者血小板进行查询,若血库中还有剩余的没有配型的与该患者同血型的血样,则对该血红蛋白或者血小板按照患者提供的血样信息对血小板或者血红蛋白进行配置。若血库中没有剩余的没有配型的与该患者同血型的血样,则该患者需要等待该医院的血库的通知才能去输血、输血小板、或者输血红蛋白。
5.整个过程从挂号、看诊、缴费、抽血样、送血样到血库,至少需要3个小时以上,很多患者的病情往往不能支撑患者等待这么久,一旦出现内出血,患者生命则无法得到保证。
6.尤其是医院血库中没有剩余的没有配型的与该患者同血型的血样,患者由于害怕出现意外情况下,继续去第二家医院重复以上流程,直到一家医院的血库中还有剩余的没有配型的与该患者同血型的血样,在护士进行血样采集时,只能患者被人在场,家属无法替代,不仅浪费了患者大量的时间,而且在不断去医院预约的过程中,患者的生命无法得到保障。
7.同时,当遇到血贩子,患者的利益更不到保证,血贩子随意插队,造成了输血小板、或者输血红蛋白局面严重混乱,甚至造成患者伤亡,引起了医患纠纷。
技术实现要素:8.为此,本发明提供一种预约方法、区块链系统、电子设备、计算机可读介质,以解决现有技术中由于预约过程繁琐而导致的患者利益得不到保障、局面严重混乱的问题。
9.为了实现上述目的,本发明第一方面提供一种预约方法,该方法用于区块链系统,所述区块链系统包括至少一个用户节点、时间戳节点、至少一个血库节点,所述方法包括:
10.所述用户节点通过哈希计算,根据用户的血液信息和身份标识信息得到第一哈希值,并将所述第一哈希值发送至所述时间戳节点;
11.所述时间戳节点接收所述第一哈希值,并将接收到所述第一哈希值的第一时间以
及所述第一哈希值使用所述时间戳节点的私钥进行签名,并将签名后的第一时间和第一哈希值作为签名信息发送至所述用户节点;
12.所述用户节点接收所述签名信息,并将所述签名信息、所述用户的血液信息以及所述用户的血液需求信息打包为广播信息,广播到所述区块链系统中;
13.所述血库节点接收所述广播信息,使用所述时间戳节点的公钥对所述签名信息进行验证,在验证通过且所述血库节点对应的血库存在满足所述用户的血液需求的血液的情况下,向所述用户节点发送预约确认信息。
14.可选的,所述用户的血液信息包括所述用户血液的血红蛋白和/或血小板的数量、所述用户的血型信息;所述用户的血液需求信息包括所述用户所需的血红蛋白和/或血小板的数量、所述用户所需的血液血型。
15.可选的,所述用户节点将所述第一哈希值发送至所述时间戳节点包括:所述用户节点按照预定的算法使用所述时间戳节点的公钥对所述第一哈希值进行加密,并使用所述用户节点的私钥对加密后的所述第一哈希值进行签名,将签名后的第一哈希值发送至所述时间戳节点;所述时间戳节点接收所述第一哈希值包括:所述时间戳节点使用所述用户节点的公钥对接收到的信息进行验证,在验证通过的情况下,按照预定算法使用所述时间戳节点的私钥对接收到的信息进行解密,获取所述第一哈希值;所述时间戳节点将签名后的第一时间和第一哈希值作为签名信息发送至所述用户节点包括:所述时间戳节点按照预定算法使用所述用户节点的公钥对所述签名信息进行加密,并使用所述时间戳节点的私钥对加密后的签名信息进行签名,将签名后的签名信息发送至所述用户节点;所述用户节点接收所述签名信息,包括:所述用户节点使用所述时间戳节点的公钥对接收到的信息进行验证,在验证通过的情况下,按照预定算法使用所述用户节点的私钥对接收到的信息进行解密,获取所述签名信息;所述用户节点将所述签名信息、所述用户的血液信息以及所述用户的血液需求信息打包为广播信息,广播到所述区块链系统,包括:所述用户节点将所述签名信息、所述用户的血液信息以及所述用户的血液需求信息打包为广播信息,并使用所述用户节点的私钥对所述广播信息进行签名,将签名后的广播信息广播到所述区块链系统;所述血库节点接收所述广播信息包括:所述血库节点使用所述用户节点的公钥对接收到的信息进行验证,在验证通过的情况下,获取所述广播信息。
16.可选的,所述在验证通过且所述血库节点对应的血库存在满足所述用户的血液需求的血液的情况下,向所述用户节点发送预约确认信息,包括:在验证通过的情况下,所述血库节点从所述签名信息中提取所述第一时间以及所述用户的血液需求;根据所述第一时间确定所述用户的预约顺序,根据所述预约顺序以及所述用户的血液需求确定所述血库节点对应的血库是否存在满足所述用户的血液需求的血液;在所述血库节点对应的血库存在满足所述用户的血液需求的血液的情况下,向所述用户发送预约确认信息。
17.可选的,所述预约确认信息包括所述血库节点对应的血库支持的支付类型、所述用户的身份标识信息、所述血库节点对应的血库的地址信息;所述血库节点向所述用户节点发送预约确认信息之后,还包括:在所述用户确认接受所述血库节点对应的血库支持的支付类型,以及所述血库节点对应的血库的地址信息的情况下,所述用户节点将所述用户的身份标识信息使用预定算法进行加密后得到第一加密结果,并将所述第一加密结果以广播的方式发送至所述区块链系统中;所述血库节点获取所述第一加密结果,并使用预定算
法对所述第一加密结果进行解密获取所述用户的身份标识信息,并根据用户的血液信息和身份标识信息通过哈希计算得到第二哈希值;在所述第二哈希值与所述第一哈希值相同的情况下,预约与所述用户的血液需求对应的血液,供所述用户到所述血库节点对应的血库输血。
18.可选的,所述将所述第一加密结果以广播的方式发送至所述区块链系统包括:
19.所述用户节点将所述第一加密结果使用所述用户节点的私钥进行签名,并将签名后的第一加密结果以广播的方式发送至所述区块链系统;
20.所述血库节点获取所述第一加密结果,包括:
21.所述血库节点使用所述用户节点的公钥对接收到的信息进行验证,在验证通过的情况下,获取所述第一加密结果。
22.可选的,所述用户节点将所述用户的身份标识信息使用预定算法进行加密后得到第一加密结果,包括:所述用户节点将所述用户的身份标识信息按照预定的算法使用所述用户节点的私钥进行加密后得到第一加密结果;所述血库节点使用预定算法对所述第一加密结果进行解密获取所述用户的身份标识信息,包括:所述血库节点按照预定算法使用所述用户节点的公钥对所述第一加密结果进行解密获取所述用户的身份标识信息。
23.本发明的第二方面提供一种区块链系统,所述区块链系统包括至少一个用户节点、时间戳节点、至少一个血库节点;
24.所述用户节点用于通过哈希计算,计算用户的血液信息和身份标识信息得到第一哈希值,并将所述第一哈希值发送至所述时间戳节点;
25.所述时间戳节点用于接收所述第一哈希值,并将接收到所述第一哈希值的第一时间以及所述第一哈希值使用所述时间戳节点的私钥进行签名,并将签名后的第一时间和第一哈希值作为签名信息发送至所述用户节点;
26.所述用户节点还用于接收所述签名信息,并将所述签名信息、所述用户的血液信息以及所述用户的血液需求信息打包为广播信息,广播到所述区块链系统;
27.所述血库节点用于接收所述广播信息,使用所述时间戳节点的公钥对所述签名信息进行验证,在验证通过且所述血库节点对应的血库存在满足所述用户的血液需求的血液的情况下,向所述用户节点发送预约确认信息。
28.本发明的第三方面,提供一种电子设备,该电子设备包括:
29.一个或多个处理器;
30.存储装置,其上存储有一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的方法;
31.一个或多个i/o接口,连接在所述处理器与存储器之间,配置为实现所述处理器与存储器的信息交互。
32.本发明的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的方法。
33.本发明实施例的预约方法、区块链系统、电子设备、计算机可读介质基于区块链系统,利用了区块链的不可篡改的特性,避免了预约过程中的暗箱操作,保证了预约输血小板、输血红蛋白的顺序的公平性,避免了输血小板、或者输血红蛋白局面混乱,减少了医患纠纷,保证了患者的利益。同时,由于区块链系统中所有血库节点都可以接收到用户节点发
送的广播信息,因此,用户节点可以同时在多家血库进行预约,避免了用户在多家医院重复挂号、门诊等待、血样采集和血库预约而造成的时间浪费,在提升了预约输血小板、输血红蛋白的效率的同时,节约了用户的时间和精力,一定程度上保证了患者的生命安全。
附图说明
34.附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。
35.图1为本发明实施例提供的一种区块链系统的组成示意图;
36.图2为本发明实施例提供的一种预约方法的流程示意图;
37.图3为本发明实施例提供的一种预约方法的部分步骤的流程示意图;
38.图4为本发明实施例提供的一种预约方法的部分步骤的流程示意图;
39.图5为本发明实施例提供的一种区块链系统的组成框图;
40.图6为本发明实施例提供的一种电子设备的组成示意图。
具体实施方式
41.以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
42.如本发明所使用的,术语“和/或”包括一个或多个相关列举条目的任何和全部组合。
43.本发明所使用的术语仅用于描述特定实施例,且不意欲限制本发明。如本发明所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。
44.当本发明中使用术语“包括”和/或“由
……
制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
45.本发明所述实施例可借助本发明的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。
46.除非另外限定,否则本发明所用的全部术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本发明的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本发明明确如此限定。
47.第一方面,本发明实施例提供一种预约方法,该预约方法主要用于帮助患者预约输血,尤其是输血小板、输血红蛋白等。该预约方法用于区块链系统。
48.区块链作为一种特殊的分布式数据库,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,其本质是一个去中心化的数据库,任何需要保存的信息,都可以写入区块链,也可以从里面读取,任何人都可以架设服务器,加入区块链网络,成为一个节点,区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库。你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致。
49.狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一
种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
50.区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块,因此区块链的信息是不可篡改的,具有很高的安全性。
51.图1为本发明实施例的区块链系统的组成示意图。
52.参照图1,本发明实施例的区块链系统包括至少一个用户节点、时间戳节点、至少一个血库节点。
53.其中,时间戳节点,顾名思义,是用于为信息打上时间戳的节点,其具体可以是一个服务器,可以根据接收信息的时间为信息打上时间戳;用户节点即用户(即需要输血小板或输血红蛋白的患者)对应的区块链节点,用户可以通过终端(如手机)接入区块链系统,成为用户节点;血库节点即血库对应的节点,不同的血库节点对应不同的血库,一个血库节点往往只对应一个血库。
54.由于用户和血库都不止一个,因此,一个区块链系统中往往包括多个用户节点和多个血库节点。
55.图2为本发明实施例提供的一种预约方法的流程示意图。
56.参照图2,本发明实施例的一种预约方法具体包括:
57.s201、用户节点通过哈希计算,根据用户的血液信息和身份标识信息得到第一哈希值,并将第一哈希值发送至时间戳节点。
58.用户通过终端(如手机)接入区块链系统,成为区块链系统的用户节点,将抽血化验得到的自己的血液信息、身份标识信息通过哈希计算计算出一个哈希值,即第一哈希值,并将第一哈希值发送至时间戳节点。
59.其中,用户的血液信息包括用户血液中血红蛋白或血小板的数量(当用户需要输血小板时,则用户血液信息包括用户血液中的血小板数量,当用户需要输血红蛋白时,用户血液信息包括用户血液中的血红蛋白数量)、用户的血型信息(如用户的具体血型)。
60.用户的身份标识信息具体可以是用户的身份证号码。
61.在一些实施例中,用户节点通过公钥加密,私钥签名的方式将第一哈希值hash_a发送至时间戳节点,以保证信息传输的安全性,防止信息泄露,保护用户隐私。
62.也就是说,用户节点将第一哈希值hash_a发送至时间戳节点具体包括:用户节点按照预定的算法使用时间戳节点的公钥对第一哈希值hash_a进行加密,并使用用户节点的私钥对加密后的第一哈希值hash_a进行签名,将签名后的第一哈希值hash_a发送至时间戳节点。
63.s202、时间戳节点接收第一哈希值,并将接收到第一哈希值的第一时间以及第一哈希值使用时间戳节点的私钥进行签名,并将签名后的第一时间和第一哈希值作为签名信息发送至用户节点。
64.区块链系统的时间戳节点接收用户节点发送的第一哈希值hash_a,并将接收到的第一哈希值hash_a的第一时间以及第一哈希值hash_a一起使用时间戳节点的私钥进行签
名,并将签名后的第一时间和第一哈希值hash_a作为签名信息发送至用户节点。
65.其中,当时间戳节点接收到的第一哈希值hash_a为用户节点使用时间戳节点的公钥加密,且使用用户节点的私钥进行签名的第一哈希值hash_a,则时间戳节点在接收到第一哈希值hash_a之后,首先根据用户节点的区块链标识(具体可以是用户使用的终端的终端标识)查询自己内部存储的区块链账本中用户节点的公钥,使用用户节点的公钥对接收到的信息的签名进行验证。在验证通过的情况下,时间戳节点按照预定的算法使用时间戳节点的私钥对接收到的信息进行解密,获取第一哈希值hash_a。
66.在一些实施例中,时间戳节点也通过公钥加密,私钥签名的方式将第一哈希值hash_a和第一时间发送至用户节点,以保证信息传输的安全性,防止信息泄露,保护用户隐私。
67.也就是说,时间戳节点将签名后的第一时间和第一哈希值hash_a作为签名信息发送至用户节点具体包括:时间戳节点将签名信息按照预定的算法使用用户节点的公钥加密后,再使用时间戳节点的私钥进行签名,将签名后的签名信息发送至用户节点。
68.s203、用户节点接收签名信息,并将签名信息、用户的血液信息以及用户的血液需求信息打包为广播信息,广播到区块链系统中。
69.用户节点接收时间戳节点发送的签名信息,并将用户的血液信息、以及用户的血液需求信息打包为广播信息,广播至区块链系统中。
70.其中,用户的血液需求信息包括用户所需的血红蛋白或者血小板的数量、以及用户的血型信息。
71.当用户节点接收到的签名信息为时间戳节点使用用户节点的公钥加密,且使用时间戳节点的私钥进行签名的签名信息,则用户节点在接收到签名信息之后,使用时间戳节点的公钥对接收到的签名信息的私钥签名进行验证。在验证通过的情况下,用户节点按照预定的算法使用用户节点的私钥对接收到的信息进行解密,获取签名信息,即使用时间戳节点私钥签名的第一时间和第一哈希值hash_a。
72.在一些实施例中,用户节点通过私钥签名的方式广播广播信息,以保证信息传输的安全性,防止信息泄露,保护用户隐私。
73.也就是说,用户节点接收签名信息,并将签名信息、用户的血液信息以及用户的血液需求信息打包为广播信息,广播到区块链系统中具体包括:用户节点将签名信息、用户的血液信息以及用户的血液需求信息打包为广播信息,并将广播信息按使用用户节点的私钥进行签名,将签名后的广播信息广播至区块链系统中。
74.s204、血库节点接收广播信息,使用时间戳节点的公钥对签名信息进行验证,在验证通过且血库节点对应的血库存在满足用户的血液需求的血液的情况下,向用户节点发送预约确认信息。
75.由于用户节点通过广播的方式将广播信息广播至区块链系统中,因此,区块链系统中的所有血库节点都可以接收到广播信息,对于每一个血库节点,其在接收到广播信息之后,使用时间戳节点的公钥对广播信息中的签名信息进行验证,在验证通过的情况下,血库节点根据广播信息中用户的血液需求信息,查询自己对应的血库中是否存在满足用户的血液需求的血液,若存在,则血库节点向用户节点发送预约确认信息,供用户确认是否预约在该血库节点对应的血库进行输血红蛋白或血小板。
76.其中,当血库节点接收到的广播信息为用户节点使用用户节点的私钥进行签名的广播信息,则血库节点在接收到广播信息之后,使用用户节点的公钥对接收到的广播信息的私钥签名进行验证,在验证通过的情况下,血库节点获取用户的血液信息、用户的血液需求信息、使用时间戳节点的私钥签名的第一时间以及第一哈希值hash_a。
77.血库节点也使用自己的私钥对预约信息进行签名,将签名后的预约信息发送至用户节点。
78.本发明实施例的预约方法基于区块链,利用了区块链的不可篡改的特性,避免了预约过程中的安详操作,保证了预约输血小板、输血红蛋白的顺序的公平性,避免了输血小板、或者输血红蛋白局面混乱,减少了医患纠纷,保证了患者的利益。
79.同时,由于区块链中所有血库节点都可以接收到用户节点发送的广播信息,因此,用户节点可以同时在多家血库进行预约,避免了用户在多家医院重复挂号、门诊等待、血样采集和血库预约而造成的时间浪费,在提升了预约输血小板、输血红蛋白的效率的同时,节约了用户的时间和精力,避免了由于等待时间过程造成的内出血,以及奔波多家医院造成在医院感染的情况的发生,一定程度上保证了患者的生命安全。
80.在一些实施例中,血库节点将第一时间作为用户排队的时间,按照用户排队时间查询血库,并向用户节点发送预约信息。
81.具体的,参照图3,在验证通过且血库节点对应的血库存在满足用户的血液需求的血液的情况下,向用户节点发送预约确认信息(步骤s204)包括:
82.s301、在验证通过的情况下,血库节点从签名信息中提取第一时间以及用户的血液需求。
83.血库节点使用时间戳节点的公钥对广播信息中的签名信息进行验证,在验证通过的情况下,血库节点获取签名信息中的第一时间,将第一时间作为用户排队的时间(即用户预约血小板或血红蛋白的时间)。
84.s302、根据第一时间确定用户的预约顺序,根据预约顺序以及用户的血液需求确定血库节点对应的血库是否存在满足用户的血液需求的血液。
85.血库节点根据在该血库节点预约的用户的预约时间的先后顺序(预约时间在前的用户享有使用血小板或血红蛋白的优先权)以及广播信息中用户的血液需求信息,查询自己对应的血库中是否存在满足用户的血液需求的血液。
86.s303、在血库节点对应的血库存在满足用户的血液需求的血液的情况下,向用户发送预约确认信息。
87.若血库节点对应的血库中存在满足用户的血液需求的血液,则血库节点向用户节点发送预约确认信息,供用户确认是否预约在该血库节点对应的血库进行输血红蛋白或血小板。
88.由于第一时间为时间戳节点接收到第一哈希值hash_a的时间,且使用了时间戳节点的私钥进行签名,血库节点使用第一时间作为用户排队的时间,可以保证用户排队时间的客观公平合理。
89.同时,由于血库节点接收的第一时间使用时间戳节点的私钥签名的第一时间,区块链的公开性和可追溯性可以保证第一时间的真实性,避免了血贩子使用虚假的时间插队。
90.在一些实施例中,血库节点向用户节点发送的预约信息包括血库节点对应的血库支持的支付类型、用户的身份标识信息、血库节点对应的血库的地址信息。
91.其中,血库节点对应的血库支持的支付类型具体可以是该血库是否支持医保等。
92.则参照图4,血库节点接收广播信息,使用时间戳节点的公钥对签名信息进行验证,在验证通过且血库节点对应的血库存在满足用户的血液需求的血液的情况下,向用户节点发送预约确认信息(步骤s204)之后,还包括:
93.s401、在用户确认接受血库节点对应的血库支持的支付类型,以及血库节点对应的血库的地址信息的情况下,用户节点将用户的身份标识信息使用预定算法进行加密后得到第一加密结果,并将第一加密结果以广播的方式发送至区块链系统中。
94.用户节点接收血库节点发送的预约信息,供用户确认是否接受血库节点对应的血库支持的支付类型(如该血库支持或不支持医保支付)、血库节点对应的血库的地址(如该血库距离是否过远)。
95.在一些实施例中,用户节点接收到的预约信息为使用血库节点的私钥签名的预约信息,则用户节点使用血库节点的公钥对接收到的信息进行验证,在验证通过的情况下,获取预约信息。
96.在用户确认接受血库节点对应的血库支持的支付类型,以及血库节点对应的血库的地址信息的情况下,用户节点将用户的身份标识信息使用预定算法进行加密后得到第一加密结果,将第一加密结果以广播的方式发送至区块链系统中,供血库节点获取。
97.其中,用户节点将用户的身份标识信息按照预定的算法进行加密得到第一加密结果具体可以是用户节点将用户的身份标识信息按照预定的算法使用用户节点的私钥进行加密,得到第一加密结果。
98.在一些实施例中,用户节点将第一加密结果发送至血库节点时,也使用私钥进行签名,即用户节点将第一加密结果使用用户节点的私钥对第一加密结果进行签名,并将签名后的第一加密结果以广播的方式发送至区块链系统中。
99.需要强调的是,用户节点可能接收到多个血库节点发送的预约信息,其只向一个用户选中的血库节点发送第一加密结果,其他血库节点在一定时间内未接收到用户节点发送的第一加密结果,则确认用户放弃在自己对应的血库的预约。
100.s402、血库节点获取第一加密结果,并使用预定算法对第一加密结果进行解密获取用户的身份标识信息,并根据用户的血液信息和身份标识信息通过哈希计算得到第二哈希值。
101.血库节点获取用户节点发送的第一加密结果,并使用预定算法对第一加密结果进行解密获取用户的身份标识信息。
102.在一些实施例中,血库节点接收到的第一加密结果为使用用户节点的私钥签名的第一加密结果,则血库节点使用用户节点的公钥对接收到的信息进行验证,在验证通过的情况下,获取第一加密结果。
103.在一些实施例中,用户节点将用户的身份标识信息按照预定的算法使用用户节点的私钥进行加密,得到第一加密结果,则血库节点在对第一加密结果进行解密时,也同样按照预定的算法使用用户节点的公钥进行解密,获取用户的身份标识信息。
104.血库节点在获取用户的身份标识信息之后,根据之前获取的用户的血液信息,以
及此次获取的用户的身份标识信息通过哈希计算得到第二哈希值hash_a1。
105.s403、在第二哈希值与第一哈希值相同的情况下,预约与用户的血液需求对应的血液,供用户到血库节点对应的血库输血。
106.血库节点对比第一哈希值hash_a和第二哈希值hash_a1,若俩值相等,则说明本次预约真实,血库节点预约用户的血液需求对应的血液,并根据用户的血液需求(主要是用户所需的血小板或血红蛋白的数量)对血小板或者血红蛋白进行配置,供用户到血库节点对应的血库输血小板或输血红蛋白。
107.第一哈希值hash_a为使用用户的血液信息和用户的身份标识信息计算得出的,就保证了第一哈希值hash_a的唯一性,因此,血库可以使用第一哈希值hash_a检验接收到的血液需求信息的真实性和唯一性。第二哈希值hash_a1是使用用户节点发送的用户身份标识信息以及之前获取的用户血液信息通过哈希值计算得到的,第一哈希值hash_a和第二哈希值hash_a1相等,则说明用户身份标识信息与用户血液信息与之前预约的信息是一致的,该次预约真实可信。
108.通过第一哈希值hash_a与第二哈希值hash_a1对比避免了血贩子用自己的身份标识信息提前预约,再让其他人使用自己的预约进行输血小板或输血红蛋白(血贩子与最终输血小板或输血红蛋白的人的身份标识显然是不同的,因此这种方式得到的第一哈希值hash_a与第二哈希值hash_a1显然是不同的),保障了患者的利益。
109.上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
110.第二方面,参照图5,本发明实施例提供一种区块链系统,区块链系统包括至少一个用户节点、时间戳节点、至少一个血库节点;
111.用户节点用于通过哈希计算,计算用户的血液信息和身份标识信息得到第一哈希值,并将第一哈希值发送至时间戳节点;
112.时间戳节点用于接收第一哈希值,并将接收到第一哈希值的第一时间以及第一哈希值使用时间戳节点的私钥进行签名,并将签名后的第一时间和第一哈希值作为签名信息发送至用户节点;
113.用户节点还用于接收签名信息,并将签名信息、用户的血液信息以及用户的血液需求信息打包为广播信息,广播到区块链系统;
114.血库节点用于接收广播信息,使用时间戳节点的公钥对签名信息进行验证,在验证通过且血库节点对应的血库存在满足用户的血液需求的血液的情况下,向用户节点发送预约确认信息。
115.需要明确的是,本发明并不局限于上文实施例中所描述并在图中示出的特定配置和处理。为了描述的方便和简洁,这里省略了对已知方法的详细描述,并且上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
116.参照图6,本发明实施例提供一种电子设备,其包括:
117.一个或多个处理器601;
118.存储器602,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器
执行,使得一个或多个处理器实现上述任意一项的预约方法;
119.一个或多个i/o接口603,连接在处理器与存储器之间,配置为实现处理器与存储器的信息交互。
120.其中,处理器601为具有数据处理能力的器件,其包括但不限于中央处理器(cpu)等;存储器602为具有数据存储能力的器件,其包括但不限于随机存取存储器(ram,更具体如sdram、ddr等)、只读存储器(rom)、带电可擦可编程只读存储器(eeprom)、闪存(flash);i/o接口(读写接口)603连接在处理器601与存储器602间,能实现处理器601与存储器602的信息交互,其包括但不限于数据总线(bus)等。
121.在一些实施例中,处理器601、存储器602和i/o接口603通过总线相互连接,进而与计算设备的其它组件连接。
122.本实施例还提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本实施例提供的预约方法,为避免重复描述,在此不再赘述预约方法的具体步骤。
123.本领域普通技术人员可以理解,上文中所发明方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其它存储器技术、cd-rom、数字多功能盘(dvd)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
124.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
125.本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本实施例的范围之内并且形成不同的实施例。
126.可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。