Our solution allows patients to keep their medical information in self custody and helps clinical research institutions with the recruitment of study participants.
TLDR: We enable users to own their medical data and apply to studies with zero-knowledge proofs (ZKPs).
Recruiting clinical trail participants is costly and it is challenging to find a large enough number of matching candidates. Patients currently have no simple way to access and verify their own medical data. Our project solves both problems by allowing for ownership of ones medical data as well as finding applicable research studies and applying through ZKPs.
Solution: Our solution centers around a smart contract that can be used to register types of medical data and issue instances of the medical data to patients. For example. A type of medical data can be a blood pressure reading. An instance of the data is the actual reading for a specific person at a specific time. Over time, patients can receive all their health data in this manner. In the current setup, the instances are minted as NFTs and sent to the patient e.g. by their doctor. In the current version, the link between NFT and patient is public (the patient could be identified if the wallet ownership is known), in future iterations this link will not be public.
Researchers who are interested in conducting a study can query the existing data types as well as the instances for measurements and formulate desired target audiences for their study. The researcher publishes the required attributes for study participation and patients can see for which published studies they are applicable.
If the patient decides to apply to become part of a study, he can issue a ZKP based on the study requirements (e.g. specific medical conditions, age, humanhood etc.) and deliver the proof to the researcher as well as opening a channel for communication.
We used a range of technologies in realizing this project. Among the projects we integrated or utilized are Sismo, The Graph, XMTP, Worldcoin and Polygon.
The solution consists of 3 main applications that interact with the smart contract, query data via the Graph and generate the zero-knowledge proofs (ZKPs) using Sismo.
The first component is currently handled without a UI by calling the smart contract to create medical data types and measurements. The smart contract is found here: https://github.com/mDeisen/ethmedbridge/blob/main/foundry/src/HealthRecordRegistry.sol The contract is deployed on goerli: https://goerli.etherscan.io/address/0x9c0f136963e9683B312C2786C62b527b4F3Dc72a
The second component enables the user to view their measurements and see studies that they might apply to. The data becomes queriable through the graph which also integrates with IPFS to fetch additional data about the medical data types. The user can apply to specific studies by proving their personhood as well as their membership in specific sysmo groups (that are created from the medical data types) as well as passing the thresholds for specific measurements specified by the researcher. The user proves the eligibility for the study with a ZKP that can be shared with the study creator.
The third component can be used to view the available medical data types as well as the measurement distribution for each medical data type and use them to create studies that are gated to people that match the criteria. The researcher can monitor how many people submitted their proofs and reach out to them via XMTP.