坚持决定智能合约项目的工作
Stuck with deciding the working of a Smart Contract Project
所以我正在做一个项目,基本上是在智能合约的帮助下执行医疗保险索赔流程。它是如何工作的:
- 用户通过保险公司注册 运行 网站。
- 他们通过输入相关医院、保险金额和包含待验证账单的 pdf 文件提出索赔。
- 医院使用网站approve/deny根据提供的信息提出索赔。
- 保险公司使用网站approve/deny根据提供的信息向用户索赔并向用户付款。
- 任何时候有人提交,approves/denies,支付索赔,都会发出一个事件。
这是我的第一个 ethereum/solidity 项目,我不知道如何将其组合在一起。
这是声明的结构:
struct Record {
uint id; // unique id for the record
address patientAddr;
address hospitalAddr;
string billId; // points to the pdf stored somewhere
uint amount;
mapping (address => RecordStatus) status; // status of the record
bool isValid; // variable to check if record has already been created or not
}
我的一些问题是:
- 如何 link 向特定用户发送记录?作为一个用户可以使用多个 Metamask 钱包。
- 是否可以将所有事件 link 提取到具有 ID 的特定记录,以便我可以向用户显示记录中发生的所有 approvals/denials?
- 对于医院来说,除了从智能合约中获取所有记录,然后在前端过滤之外,还有更好的获取关联记录的方法吗?
非常感谢您的帮助。
到 link 特定用户的记录,您需要添加一个映射(我假设您有一个用户 ID),如下所示:
mapping(uint => Record[]) recordsByUserID;
然后您将能够通过以下方式获取知道用户 ID 的记录数组:
Records userRecords[] = recordsByUserID[user_id];
关于事件记录其实很简单,因为我们有 indexed
关键字,让我给你举个例子:
event Approved(uint indexed userId, uint indexed recordId);
对于这样的事件,您可以使用用户 ID 和记录 ID 查询所有事件。
关于第三个问题我建议你用图https://thegraph.com/en/。它基本上通过以非常简单的方式为您索引所有事件来创建您自己的 GraphQL 后端。然后,您就可以 运行 您的 graphql 查询并提高效率。
所以我正在做一个项目,基本上是在智能合约的帮助下执行医疗保险索赔流程。它是如何工作的:
- 用户通过保险公司注册 运行 网站。
- 他们通过输入相关医院、保险金额和包含待验证账单的 pdf 文件提出索赔。
- 医院使用网站approve/deny根据提供的信息提出索赔。
- 保险公司使用网站approve/deny根据提供的信息向用户索赔并向用户付款。
- 任何时候有人提交,approves/denies,支付索赔,都会发出一个事件。
这是我的第一个 ethereum/solidity 项目,我不知道如何将其组合在一起。
这是声明的结构:
struct Record {
uint id; // unique id for the record
address patientAddr;
address hospitalAddr;
string billId; // points to the pdf stored somewhere
uint amount;
mapping (address => RecordStatus) status; // status of the record
bool isValid; // variable to check if record has already been created or not
}
我的一些问题是:
- 如何 link 向特定用户发送记录?作为一个用户可以使用多个 Metamask 钱包。
- 是否可以将所有事件 link 提取到具有 ID 的特定记录,以便我可以向用户显示记录中发生的所有 approvals/denials?
- 对于医院来说,除了从智能合约中获取所有记录,然后在前端过滤之外,还有更好的获取关联记录的方法吗?
非常感谢您的帮助。
到 link 特定用户的记录,您需要添加一个映射(我假设您有一个用户 ID),如下所示:
mapping(uint => Record[]) recordsByUserID;
然后您将能够通过以下方式获取知道用户 ID 的记录数组:
Records userRecords[] = recordsByUserID[user_id];
关于事件记录其实很简单,因为我们有 indexed
关键字,让我给你举个例子:
event Approved(uint indexed userId, uint indexed recordId);
对于这样的事件,您可以使用用户 ID 和记录 ID 查询所有事件。
关于第三个问题我建议你用图https://thegraph.com/en/。它基本上通过以非常简单的方式为您索引所有事件来创建您自己的 GraphQL 后端。然后,您就可以 运行 您的 graphql 查询并提高效率。