Blockchain-Based Management of Organ Donation and Transplantation Final
Blockchain-Based Management of Organ Donation and Transplantation Final
Company profile
MK Technology is a prominent name in the field of high-tech manufacturing, known for its
pioneering contributions to rapid prototyping, vacuum casting, and additive manufacturing
technologies. Founded in Germany, MK Technology has carved a niche for itself as a global
leader in the development and supply of advanced systems used in precision casting and
prototype production.
With a strong foundation built on innovation, engineering expertise, and quality craftsmanship,
the company continues to drive progress in various high-demand sectors including aerospace,
automotive, defense, medical, and industrial design.
The company’s core strength lies in its ability to design and manufacture sophisticated
machinery and complete system solutions that streamline the prototyping and casting process.
MK Technology is particularly recognized for its automated vacuum casting systems, which
enable fast, accurate, and cost-effective production of prototypes and functional components.
These systems are widely used by design studios, R&D departments, and manufacturing units
that require high levels of customization, detail, and performance.
With a network of trusted distributors and service partners around the world, MK Technology
has established a strong international presence. Its customer base spans across Europe, North
America, Asia, and the Middle East, supported by a team of professionals who provide
comprehensive technical support, training, and consultancy.
DECLARATION
I do here by declare that the project work entitled “Blockchain-Based Management of Organ
Donation and Transplantation” is a genuine work carried out by me under the guidance of
XXXXXXXXXX in partial fulfilment for the award of the degree of “Master of Computer
Applications” of Jawaharlal Nehru Technological University, Kakinada.
ACKNOWLEDGEMENT
I would like to express my heartfelt gratitude to all the distinguished individuals whose
invaluable support and guidance have been instrumental in the successful completion of my mini
project.
First and foremost, I extend my sincere thanks to our Secretary and Correspondent, [Name], of
NRI Engineering College, for providing me with this opportunity and for fostering an
environment conducive to academic excellence.
I am deeply grateful to our Principal, [Name], for his unwavering encouragement and for
facilitating the resources necessary to undertake this project as a part of our curriculum.
I am especially thankful to my Internal Guide, [Name], for her timely suggestions and for
steering my efforts in the right direction, thereby enriching my learning experience.
I also wish to acknowledge all the faculty members of NRI Institute of Technology for their
constant encouragement and for being a great source of knowledge and cooperation.
Finally, I am grateful to my peers and family members for their unwavering support and
motivation, which have been a source of strength throughout this endeavor.
TABLE OF CONTENTS
1. ABSTRACT
2. INTRODUCTION
3. SYSTEM ANALYSIS
A. System software
B. Existing System
C. Proposed System
D. Software/Hardware Requirements
E. Feasibility Study
4. SYSTEM DESIGN
A. Architecture Diagram
B. Data flow Diagram
C. Class Diagram
D. Use case Diagram
E. Sequence Diagram
F. Activity Diagram
G. ER Diagram
5. SOURCE CODE
6. TESTING
7. CONCLUSION
8. APPENDIX
A. Screens
B. Reports
C. Data Dictionary
D. User Manual
9. FUTURE ENHANCEMENT
10.BIBLIOGRAPHY
ABSTRACT
Today's organ donation and transplantation systems pose different requirements and challenges
in terms of registration, donor-recipient matching, organ removal, organ delivery, and
transplantation with legal, clinical, ethical, and technical constraints. Therefore, an end-to-end
organ donation and transplantation system is required to guarantee a fair and efficient process to
enhance patient experience and trust. In this
paper, we propose a private Ethereum blockchain-based solution to enable organ donation and
transplantation management in a manner that is fully decentralized, secure, traceable, auditable,
private, and trustworthy. We develop smart contracts and present six algorithms along with their
implementation, testing, and validation details. We evaluate the performance of the proposed
solution by performing privacy, security, and confidentiality analyses as well as comparing our
solution with the existing solutions. We make the smart contract code publicly available on
Github.
The critical need for efficient, transparent, and secure management of organ donation and
transplantation processes faces significant challenges, including data fragmentation, lack of
traceability, and risks of fraud and tampering. This paper proposes a novel blockchain-based
1
framework to revolutionize organ donation and transplantation. By leveraging the inherent
immutability, distributed consensus, and transparency of blockchain technology, the proposed
system aims to create a secure and auditable record of donor registrations, organ matching,
allocation, and transplantation events. 2 This approach can enhance trust among stakeholders
(donors, recipients, medical professionals, and regulatory bodies), improve the efficiency of
organ matching algorithms, reduce organ wastage through enhanced traceability, and ultimately
3
increase the number of successful transplants. The paper outlines the architecture of the
proposed blockchain network, discusses its key functionalities, addresses potential challenges
and ethical considerations, and highlights the potential benefits of adopting this technology in the
life-saving field of organ transplantation.
List of figures
INTRODUCTION
Organ failure or damage occurs due to an injury or a disease. It affects the quality of life and,
in some cases, leads to death. Donating an organ is one of humanity's most honorable actions
to save the lives of patients through organ transplantation. For a successful transplant, the
organ must be in acceptable working conditions with donor-recipient matching, and its
removal should not pose a life-threatening risk to the donor [1]. The first successful organ
donation occurred with a kidney transplant between twin brothers in 1954 [2]. Since then, the
annual number of transplants has steadily increased. However, the demand for organ
donations still exceeds the number of donors [3]. In fact, while waiting for an organ
transplant, twenty people die every day, and a new patient is added to the waiting list in every
ten minutes [4]. More importantly, accessing the organ donation waiting list is a basic
requirement for organ allocation. Referral for transplantation can be affected by both
geographical and socioeconomic factors. Therefore, the allocation process on the waiting list
should not discriminate against certain groups of patients [4].
Organ donation is conducted in two different ways, including deceased donation and living
donation. Figure 1 illustrates the typical flow chart for donating an organ and transplanting it
to a patient. First, the donor is examined by the hospital transplant team, and if the donor is
deceased, a brain death test is performed. Meanwhile, if the donor is still alive, doctors
examine the donor and ensure that the donor is fit for live donation. Then, all medical records
are reported to the procurement organizer. The procurement organizer is responsible for
evaluating the donor's condition to decide if he is a fit donor and ensuring that the donor is
properly registered in the medical system. Next, if the evaluation shows that the donor is
eligible for donation, the procurement organizer sends all the data to the organ transplantation
organizer. This step can be performed only if the donor gives consent to donate to an
anonymous person. After that, the matching process between the available donors and
patients on the waiting list is performed by the organ transplantation organizer. As a result, a
ranked list is generated as an output and provided to the transplantation surgeons. Next, the
transplant surgeon decides whether the organ is appropriate for the patient based on various
considerations, such as the donor's medical records and the current health of the prospective
recipient. Later, when a transplant surgeon accepts the donated organ, the donor's surgeon is
notified to remove the donated organ. Finally, the donated organ is transported to the patient's
hospital and received by the transplant surgeon. However, suppose the situation is for a live
donor and it has been planned to donate to a known person by name. In that case, the data
will go directly to the transplant surgeon to start the surgery of removing and transplanting
the donated organ [6], [7].
In the past, when a patient died or was near death, the organ procurement organization and
hospital worked together to do an initial medical test to decide if the patient could be an
organ donor. This call takes around 15 minutes, and only 6% of these calls result in possible
organ donors' being identified. Over the years, this phone call has been replaced by an
instant message generated by central computer systems that store all the data required for this
process [8]. However, the core issue with this strategy is that the security and validity of such
data are entirely dependent on the transplantation centers' ability to keep their systems secure
and identify potential harm to donors and recipients. The accuracy of the wait-list data is
largely dependent on people's faith and trust in these centers' ability to keep it secure from
hackers and fraudulent employees [9]. Moreover, transparency is another challenge affecting
the success of the organ donation process. According to World Health Organization (WHO)
reports, up to 10% of transplanted organs may have been obtained unethically via organ
trafficking, but the exact numbers are unknown [10]. The lack of transparency in the current
system among participants leads to illegal organ trade and purchases and medical
professionals engaging in unethical practices [11]. Moreover, there are hospitals that take
advantage of the patient's need for the organ and offer the opportunity to transfer the organ to
those who pay a higher amount to the hospital while ignoring the patient with the highest
priority on the waiting list [12], [13]. In addition, current transplant systems are also
frequently slow, which is unacceptable in such a critical and life-threatening scenario. Such
systems are hardly up to date with the minimum security standards. So far, there has recently
been a surge in security breaches affecting user privacy and system integrity. In general,
modern systems manage data through the use of standard databases; however, most hospitals,
health ministries, and other medical facilities lack a standardized data communication
system [1].
The integration of blockchain technology into this domain presents a promising solution.
Blockchain's decentralized, immutable, and transparent nature can revolutionize the
management of organ donation and transplantation. By ensuring secure and tamper-proof
recording of donor and recipient information, streamlining the matching process through
smart contracts, and enhancing traceability throughout the organ transplantation journey,
blockchain can address many of the existing challenges.
SYSTEM ANALYSIS
Software Environment
Java Technology
Java technology is both a programming language and a platform.
The Java Programming Language
The Java programming language is a high-level language that can be characterized by
all of the following buzzwords:
1. Simple
2. Architecture neutral
3. Object oriented
4. Portable
5. Distributed
6. High performance
7. Interpreted
8. Multithreaded
9. Robust
10. Dynamic
11. Secure
With most programming languages, you either compile or interpret a program so that you can
run it on your computer. The Java programming language is unusual in that a program is both
compiled and interpreted. With the compiler, first you translate a program into an
intermediate language called Java byte codes —the platform-independent codes interpreted
by the interpreter on the Java platform. The interpreter parses and runs each Java byte code
instruction on the computer. Compilation happens just once; interpretation occurs each time
the program is executed. The following figure illustrates how this works.
You can think of Java byte codes as the machine code instructions for the Java
Virtual Machine (Java VM). Every Java interpreter, whether it’s a development tool or a Web
browser that can run applets, is an implementation of the Java VM. Java byte codes help
make “write once, run anywhere” possible. You can compile your program into byte codes on
any platform that has a Java compiler. The byte codes can then be run on any implementation
of the Java VM. That means that as long as a computer has a Java VM, the same program
written in the Java programming language can run on Windows 2000, a Solaris workstation,
or on an iMac.
Native code is code that after you compile it, the compiled code runs on a specific hardware
platform. As a platform-independent environment, the Java platform can be a bit slower than
native code. However, smart compilers, well-tuned interpreters, and just-in-time byte code
compilers can bring performance close to that of native code without threatening portability.
What Can Java Technology Do?
The most common types of programs written in the Java programming language are applets
and applications. If you’ve surfed the Web, you’re probably already familiar with applets. An
applet is a program that adheres to certain conventions that allow it to run within a Java-
enabled browser.
However, the Java programming language is not just for writing cute, entertaining applets for
the Web. The general-purpose, high-level Java programming language is also a powerful
software platform. Using the generous API, you can write many types of programs.
An application is a standalone program that runs directly on the Java platform. A special kind
of application known as a server serves and supports clients on a network. Examples of
servers are Web servers, proxy servers, mail servers, and print servers. Another specialized
program is a servlet. A servlet can almost be thought of as an applet that runs on the server
side. Java Servlets are a popular choice for building interactive web applications, replacing
the use of CGI scripts. Servlets are similar to applets in that they are runtime extensions of
applications. Instead of working in browsers, though, servlets run within Java Web servers,
configuring or tailoring the server.
How does the API support all these kinds of programs?
It does so with packages of software components that provides a wide range of functionality.
Every full implementation of the Java platform gives you the following features:
The essentials: Objects, strings, threads, numbers, input and output, data structures, system
properties, date and time, and so on.
Applets: The set of conventions used by applets.
Networking: URLs, TCP (Transmission Control Protocol), UDP (User Data gram Protocol)
sockets, and IP (Internet Protocol) addresses.
Internationalization: Help for writing programs that can be localized for users worldwide.
Programs can automatically adapt to specific locales and be displayed in the appropriate
language.
Security: Both low level and high level, including electronic signatures, public and private
key management, access control, and certificates.
Software components: Known as JavaBeansTM, can plug into existing component
architectures.
Object serialization: Allows lightweight persistence and communication via Remote
Method Invocation (RMI).
Java Database Connectivity (JDBCTM): Provides uniform access to a wide range of
relational databases.
The Java platform also has APIs for 2D and 3D graphics, accessibility, servers, collaboration,
telephony, speech, animation, and more. The following figure depicts what is included in the
Java 2 SDK.
Distribute software more easily: You can upgrade applets easily from a central server.
Applets take advantage of the feature of allowing new classes to be loaded “on the fly,”
without recompiling the entire program.
ODBC
Microsoft Open Database Connectivity (ODBC) is a standard programming interface for
application developers and database systems providers. Before ODBC became a de facto
standard for Windows programs to interface with database systems, programmers had to use
proprietary languages for each database they wanted to connect to. Now, ODBC has made the
choice of the database system almost irrelevant from a coding perspective, which is as it
should be. Application developers have much more important things to worry about than the
syntax that is needed to port their program from one database to another when business needs
suddenly change.
Through the ODBC Administrator in Control Panel, you can specify the particular database
that is associated with a data source that an ODBC application program is written to use.
Think of an ODBC data source as a door with a name on it. Each door will lead you to a
particular database. For example, the data source named Sales Figures might be a SQL Server
database, whereas the Accounts Payable data source could refer to an Access database. The
physical database referred to by a data source can reside anywhere on the LAN.
The ODBC system files are not installed on your system by Windows 95. Rather, they are
installed when you setup a separate database application, such as SQL Server Client or Visual
Basic 4.0. When the ODBC icon is installed in Control Panel, it uses a file called
ODBCINST.DLL. It is also possible to administer your ODBC data sources through a stand-
alone program called ODBCADM.EXE. There is a 16-bit and a 32-bit version of this
program and each maintains a separate list of ODBC data sources.
From a programming perspective, the beauty of ODBC is that the application can be written
to use the same set of function calls to interface with any data source, regardless of the
database vendor. The source code of the application doesn’t change whether it talks to Oracle
or SQL Server. We only mention these two as an example. There are ODBC drivers available
for several dozen popular database systems. Even Excel spreadsheets and plain text files can
be turned into data sources. The operating system uses the Registry information written by
ODBC Administrator to determine which low-level ODBC drivers are needed to talk to the
data source (such as the interface to Oracle or SQL Server). The loading of the ODBC drivers
is transparent to the ODBC application program. In a client/server environment, the ODBC
API even handles many of the network issues for the application programmer.
The advantages of this scheme are so numerous that you are probably thinking there must be
some catch. The only disadvantage of ODBC is that it isn’t as efficient as talking directly to
the native database interface. ODBC has had many detractors make the charge that it is too
slow. Microsoft has always claimed that the critical factor in performance is the quality of the
driver software that is used. In our humble opinion, this is true. The availability of good
ODBC drivers has improved a great deal recently. And anyway, the criticism about
performance is somewhat analogous to those who said that compilers would never match the
speed of pure assembly language. Maybe not, but the compiler (or ODBC) gives you the
opportunity to write cleaner programs, which means you finish sooner. Meanwhile,
computers get faster every year.
JDBC
In an effort to set an independent database standard API for Java; Sun Microsystems
developed Java Database Connectivity, or JDBC. JDBC offers a generic SQL database access
mechanism that provides a consistent interface to a variety of RDBMSs. This consistent
interface is achieved through the use of “plug-in” database connectivity modules, or drivers.
If a database vendor wishes to have JDBC support, he or she must provide the driver for each
platform that the database and Java run on.
To gain a wider acceptance of JDBC, Sun based JDBC’s framework on ODBC. As you
discovered earlier in this chapter, ODBC has widespread support on a variety of platforms.
Basing JDBC on ODBC will allow vendors to bring JDBC drivers to market much faster than
developing a completely new connectivity solution.
JDBC was announced in March of 1996. It was released for a 90 day public review that
ended June 8, 1996. Because of user input, the final JDBC v1.0 specification was released
soon after.
The remainder of this section will cover enough information about JDBC for you to know
what it is about and how to use it effectively. This is by no means a complete overview of
JDBC. That would fill an entire book.
JDBC Goals
Few software packages are designed without goals in mind. JDBC is one that, because of its
many goals, drove the development of the API. These goals, in conjunction with early
reviewer feedback, have finalized the JDBC class library into a solid framework for building
database applications in Java.
The goals that were set for JDBC are important. They will give you some insight as to why
certain classes and functionalities behave the way they do. The eight design goals for JDBC
are as follows:
Java Interpreter
Program
Compilers My Program
You can think of Java byte codes as the machine code instructions for the Java Virtual
Machine (Java VM). Every Java interpreter, whether it’s a Java development tool or a Web
browser that can run Java applets, is an implementation of the Java VM. The Java VM can
also be implemented in hardware.
Java byte codes help make “write once, run anywhere” possible. You can compile your Java
program into byte codes on my platform that has a Java compiler. The byte codes can then be
run any implementation of the Java VM. For example, the same Java program can run
Windows NT, Solaris, and Macintosh.
Networking
TCP/IP stack
The TCP/IP stack is shorter than the OSI one:
Internet. It is also responsible for breaking up large datagram into smaller ones for
transmission and reassembling them at the other end.
UDP
UDP is also connectionless and unreliable. What it adds to IP is a checksum for the contents
of the datagram and port numbers. These are used to give a client/server model - see later.
TCP
TCP supplies logic to give a reliable connection-oriented protocol above IP. It provides a
virtual circuit that two processes can use to communicate.
Internet addresses
In order to use a service, you must be able to find it. The Internet uses an address scheme for
machines so that they can be located. The address is a 32 bit integer which gives the IP
address. This encodes a network ID and more addressing. The network ID falls into various
classes according to the size of the network address.
Network address
Class A uses 8 bits for the network address with 24 bits left over for other addressing. Class
B uses 16 bit network addressing. Class C uses 24 bit network addressing and class D uses all
32.
Subnet address
Internally, the UNIX network is divided into sub networks. Building 11 is currently on one
sub network and uses 10-bit addressing, allowing 1024 different hosts.
Host address
8 bits are finally used for host addresses within our subnet. This places a limit of 256
machines that can be on the subnet.
Total address
Port addresses
A service exists on a host, and is identified by its port. This is a 16 bit number. To send a
message to a server, you send it to the port for that service of the host that it is running on.
This is not location transparency! Certain of these ports are "well known".
Sockets
A socket is a data structure maintained by the system to handle network connections. A
socket is created using the call socket. It returns an integer that is like a file descriptor. In
fact, under Windows, this handle can be used with Read File and Write File functions.
#include <sys/types.h>
#include <sys/socket.h>
int socket(int family, int type, int protocol);
Here "family" will be AF_INET for IP communications, protocol will be zero, and type will
depend on whether TCP or UDP is used. Two processes wishing to communicate over a
network create a socket each. These are similar to two ends of a pipe - but the actual pipe
does not yet exist.
JFree Chart
JFreeChart is a free 100% Java chart library that makes it easy for developers to display
professional quality charts in their applications. JFreeChart's extensive feature set includes:
A consistent and well-documented API, supporting a wide range of chart types;
A flexible design that is easy to extend, and targets both server-side and client-side
applications;
Support for many output types, including Swing components, image files (including PNG and
JPEG), and vector graphics file formats (including PDF, EPS and SVG);
JFreeChart is "open source" or, more specifically, free software. It is distributed under the
terms of the GNU Lesser General Public Licence (LGPL), which permits use in proprietary
applications.
1. Map Visualizations
Charts showing values that relate to geographical areas. Some examples include: (a)
population density in each state of the United States, (b) income per capita for each country
in Europe, (c) life expectancy in each country of the world. The tasks in this project include:
Sourcing freely redistributable vector outlines for the countries of the world, states/provinces
in particular countries (USA in particular, but also other areas);
Creating an appropriate dataset interface (plus default implementation), a rendered, and
integrating this with the existing XYPlot class in JFreeChart;
Testing, documenting, testing some more, documenting some more.
3. Dashboards
There is currently a lot of interest in dashboard displays. Create a flexible dashboard
mechanism that supports a subset of JFreeChart chart types (dials, pies, thermometers, bars,
and lines/time series) that can be delivered easily via both Java Web Start and an applet.
4. Property Editors
The property editor mechanism in JFreeChart only handles a small subset of the properties
that can be set for charts. Extend (or reimplement) this mechanism to provide greater end-
user control over the appearance of the charts.
Sun Microsystems defines J2ME as "a highly optimized Java run-time environment targeting
a wide range of consumer products, including pagers, cellular phones, screen-phones, digital
set-top boxes and car navigation systems." Announced in June 1999 at the JavaOne
Developer Conference, J2ME brings the cross-platform functionality of the Java language to
smaller devices, allowing mobile wireless devices to share applications. With J2ME, Sun has
adapted the Java platform for consumer products that incorporate or are based on small
computing devices.
J2ME uses configurations and profiles to customize the Java Runtime Environment (JRE). As
a complete JRE, J2ME is comprised of a configuration, which determines the JVM used, and
a profile, which defines the application by adding domain-specific classes. The configuration
defines the basic run-time environment as a set of core classes and a specific JVM that run on
specific types of devices. We'll discuss configurations in detail in the The profile defines the
application; specifically, it adds domain-specific classes to the J2ME configuration to define
certain uses for devices. We'll cover profiles in depth in the The following graphic depicts
the relationship between the different virtual machines, configurations, and profiles. It also
draws a parallel with the J2SE API and its Java virtual machine. While the J2SE virtual
machine is generally referred to as a JVM, the J2ME virtual machines, KVM and CVM, are
subsets of JVM. Both KVM and CVM can be thought of as a kind of Java virtual machine --
it's just that they are shrunken versions of the J2SE JVM and are specific to J2ME.
4.Configurations overview
The configuration defines the basic run-time environment as a set of core classes and a
specific JVM that run on specific types of devices. Currently, two configurations exist for
J2ME, though others may be defined in the future:
* Connected Limited Device Configuration (CLDC) is used specifically with the KVM for
16-bit or 32-bit devices with limited amounts of memory. This is the configuration (and the
virtual machine) used for developing small J2ME applications. Its size limitations make
CLDC more interesting and challenging (from a development point of view) than CDC.
CLDC is also the configuration that we will use for developing our drawing tool application.
An example of a small wireless device running small applications is a Palm hand-held
computer.
* Connected Device Configuration (CDC) is used with the C virtual machine (CVM) and is
used for 32-bit architectures requiring more than 2 MB of memory. An example of such a
device is a Net TV box.
5.J2ME profiles
What is a J2ME profile?
As we mentioned earlier in this tutorial, a profile defines the type of device supported. The
Mobile Information Device Profile (MIDP), for example, defines classes for cellular phones.
It adds domain-specific classes to the J2ME configuration to define uses for similar devices.
Two profiles have been defined for J2ME and are built upon CLDC: KJava and MIDP. Both
KJava and MIDP are associated with CLDC and smaller devices. Profiles are built on top of
configurations. Because profiles are specific to the size of the device (amount of memory) on
which an application runs, certain profiles are associated with certain configurations.
A skeleton profile upon which you can create your own profile, the Foundation Profile, is
available for CDC.
Profile 1: KJava
KJava is Sun's proprietary profile and contains the KJava API. The KJava profile is built on
top of the CLDC configuration. The KJava virtual machine, KVM, accepts the same byte
codes and class file format as the classic J2SE virtual machine. KJava contains a Sun-specific
API that runs on the Palm OS. The KJava API has a great deal in common with the J2SE
Abstract Windowing Toolkit (AWT). However, because it is not a standard J2ME package,
its main package is com.sun.kjava. We'll learn more about the KJava API later in this tutorial
when we develop some sample applications.
Profile 2: MIDP
MIDP is geared toward mobile devices such as cellular phones and pagers. The MIDP, like
KJava, is built upon CLDC and provides a standard run-time environment that allows new
applications and services to be deployed dynamically on end user devices. MIDP is a
common, industry-standard profile for mobile devices that is not dependent on a specific
vendor. It is a complete and supported foundation for mobile application
development. MIDP contains the following packages, the first three of which are core CLDC
packages, plus three MIDP-specific packages.
* java.lang
* java.io
* java.util
* javax.microedition.io
* javax.microedition.lcdui
* javax.microedition.midlet
* javax.microedition.rms
EXISTING SYSTEM
The authors in [17] developed a multi-agent software platform to represent the information
workflow model among donor hospitals, regulators, and recipient hospitals. This platform
optimizes the pre-transplantation tasks, which can improve the process efficiency. In
addition, it allows storing potential donor information and improves direct communication
among all participants in the organ transplantation process. An information workflow was
simulated using the developed platform, and it was estimated that the saved time might be
between three to five hours.
The TransNet in [18] is a system using scanning technology for barcodes at the point of organ
recovery to assist in labeling, packaging, and tracking organs and other biological materials
for transplantation. It involves supplementing the labeling system with an application
developed and a portable barcode printer corresponding with DonorNet. During organ
recovery, procurement coordinators will use the operating room's system to print labels and
scan all organs to be transported. Similarly, many supply chain management solutions have
relied on barcodes, RFID tags, and Electronic Product Codes (EPC) for identifying and
sharing product information to facilitate the tracking of items through various phases [19].
Finally, the authors in [20] proposed a manageable mechanism, MIN, for the online matching
of deceased organs to donors to improve efficiency and fairness in selecting patients within
the current system in Australia. The MIN mechanism simply designates an arriving organ to a
patient that minimizes |KDPI-EPTS|, tie-breaking by time on the waiting list and later
randomly. The Kidney Donor Patient Inde (KDPI) estimates the quality of the organ. On the
other hand, the Expected Post-Transplant Survival Score (EPTS) measures the life quality of
the recipient after the transplant. After testing, the results showed that the MIN mechanism
outperforms the current mechanism under consideration by the Organ and Tissue Authority in
Australia.
The authors in [23] proposed an organ donation decentralized app using blockchain
technology. Patients use a web application to register their information, including their
medical ID, organ type, blood type, and state. The system would operate on a first-in, first-
out (FIFO) approach, with the exception of a patient being in a critical state. It offered better
security, added transparency, and a much faster system. However, it should be modified
when used in different regions according to their regulations and needs. Similarly, the authors
in [24], developed a web-based application using FIFO to choose an organ donor for each
actual patient seeking a transplant, and in the case of an emergency, that patient is given
priority. Furthermore, an organ donation and transplantation application utilizing blockchain
has been proposed in [12], where the registered hospital accepts the registered donors and
registers the recipients to match them with a suitable donor based on the request.
Moreover, in [25], a use case for blockchain in organ donation has been developed. Simply,
the process begins with the donor signing a smart contract for organ donation and the patient
ling a transplant request. Both papers are verified and hashed by a registered doctor or nurse,
who then creates a verified mismatching pair and announces it over the network. The
network finds a match and sends it to a doctor for approval. If a match is found, the doctor
approves, and the next step is for the doctor to generate a hash. If the doctor generates a hash,
the verified matched pair becomes part of the blockchain. Finally, doctors and healthcare
professionals
are given all the information they need to prepare for the logistics of the surgery.
Disadvantages
The system is not implemented blockchain based organ donation which leads less
security and less communication between hospitals and donors..
The system is not implemented an auto-matching process between the donor and
recipient through a smart contract based on certain criteria.
Proposed System
The system proposes a private Ethereum blockchain-based solution that ensures organ
donation and transplantation management in a manner that is decentralized, secure,
reliable, traceable, auditable, and trustworthy.
The system develops smart contracts that register actors and ensure data provenance
through producing events for all the necessary actions that occur during the organ
donation and transplantation stages. The smart contracts code is made publicly
available on Github.1
The system develops an auto-matching process between the donor and recipient
through a smart contract based on certain criteria.
The system presents six algorithms along with their full implementation, testing, and
validation details.
The system conducts security analysis to determine that the proposed solution is
secure against common security attacks and vulnerabilities. We compare our solution
with the existing solutions to show its novelty. Our proposed solution is general and
may be easily adjusted to meet the needs of a variety of related applications.
Advantages
The system is implemented an organ donation based on blockchain techniques which
is more fast and secure.
In the proposed system, the system is implemented an automatic process of human
organ donation.
SYSTEM REQUIREMENTS
➢ H/W System Configuration:-
➢ Processor - Pentium –IV
➢ RAM - 4 GB (min)
➢ Hard Disk - 20 GB
➢ Monitor - SVGA
Software Requirements:
Feasibility Analysis
Technical Feasibility
Blockchain Integration: Ensures secure and immutable records for donor and recipient data.
Smart Contracts: Automates organ matching based on predefined medical criteria.
Interoperability: Can integrate with hospital management systems, biometric verification,
and IoT-based organ tracking.
Challenges: Requires robust infrastructure, scalability solutions, and hospital IT system
integration.
over time.
Investment Requirement: Requires funding for blockchain infrastructure, system
development, and training.
3. Scheduling Feasibility
occurring while feeding are minimized. According to Software Engineering Concepts, the
input forms or screens are designed to provide to have a validation control over the input
limit, range and other related validations.
This system has input screens in almost all the modules. Error messages are
developed to alert the user whenever he commits some mistakes and guides him in the right
way so that invalid entries are not made. Let us see deeply about this under module design.
Input design is the process of converting the user created input into a computer-based
format. The goal of the input design is to make the data entry logical and free from errors.
The error is in the input are controlled by the input design. The application has been
developed in user-friendly manner. The forms have been designed in such a way during the
processing the cursor is placed in the position where must be entered. The user is also
provided with in an option to select an appropriate input from various alternatives related to
the field in certain cases.
Validations are required for each data entered. Whenever a user enters an erroneous
data, error message is displayed and the user can move on to the subsequent pages after
completing all the entries in the current page.
OUTPUT DESIGN
The Output from the computer is required to mainly create an efficient method of
communication within the company primarily among the project leader and his team
members, in other words, the administrator and the clients. The output of VPN is the system
which allows the project leader to manage his clients in terms of creating new clients and
assigning new projects to them, maintaining a record of the project validity and providing
folder level access to each client on the user side depending on the projects allotted to him.
After completion of a project, a new project may be assigned to the client. User
authentication procedures are maintained at the initial stages itself. A new user may be
created by the administrator himself or a user can himself register as a new user but the task
of assigning projects and validating a new user rests with the administrator only.
The application starts running when it is executed for the first time. The server has to be
started and then the internet explorer in used as the browser. The project will run on the local
area network so the server machine will serve as the administrator while the other connected
systems can act as the clients. The developed system is highly user friendly and can be easily
understood by anyone using it even for the first time.
NORMALIZATION
SYSTEM DESIGN
ARCHITECTURE DIAGRAM
CLASS DIAGRAM
SEQUENCE DIAGRAM
USECASE DIAGRAM
ACTIVITY DIAGRAM
Flow Chart
ER DIAGRAMS
IMPLEMENTATION
Source code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Luckyr | Contact</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" type="text/css" href="css/coin-slider.css" />
<script type="text/javascript" src="js/cufon-yui.js"></script>
<script type="text/javascript" src="js/cufon-aller.js"></script>
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/script.js"></script>
<script type="text/javascript" src="js/coin-slider.min.js"></script>
</head>
<body>
<div class="main">
<div class="header">
<div class="header_resize">
<div class="menu_nav">
<ul>
<li><a href="index.html"><span>Home Page</span></a></li>
<li><a href="support.html"><span>Support</span></a></li>
<li><a href="about.html"><span>About Us</span></a></li>
<li><a href="blog.html"><span>Blog</span></a></li>
<li class="active"><a href="contact.html"><span>Contact Us</span></a></li>
</ul>
</div>
<div class="logo">
<h1><a href="index.html"><small>Company Slogan Here</small>
<span>Luckyr</span></a></h1>
</div>
<div class="clr"></div>
<div class="slider">
<div id="coin-slider"> <a href="#"><img src="images/slide1.jpg" width="970"
height="305" alt="" /> </a> <a href="#"><img src="images/slide2.jpg" width="970"
height="305" alt="" /> </a> <a href="#"><img src="images/slide3.jpg" width="970"
height="305" alt="" /> </a> </div>
</div>
<div class="clr"></div>
</div>
</div>
<div class="content">
<div class="content_resize">
<div class="mainbar">
<div class="article">
<h2><span>Contact</span></h2>
<div class="clr"></div>
<p>Nullapede laorem velit curabitudin enim in nibh ero leo in pede. Semperpurus nibh
elit et convallis eu trices congue males monterdum elit.</p>
</div>
<div class="article">
<h2><span>Send us</span> mail</h2>
<div class="clr"></div>
<form action="#" method="post" id="sendemail">
<ol>
<li>
<label for="name">Name (required)</label>
<input id="name" name="name" class="text" />
</li>
<li>
<label for="email">Email Address (required)</label>
<input id="email" name="email" class="text" />
</li>
<li>
<label for="website">Website</label>
<input id="website" name="website" class="text" />
</li>
<li>
<label for="message">Your Message</label>
<textarea id="message" name="message" rows="8" cols="50"></textarea>
</li>
<li>
<input type="image" name="imageField" id="imageField" src="images/submit.gif"
class="send" />
<div class="clr"></div>
</li>
</ol>
</form>
</div>
</div>
<div class="sidebar">
<div class="searchform">
<form id="formsearch" name="formsearch" method="post" action="#">
<span>
<input name="editbox_search" class="editbox_search" id="editbox_search"
maxlength="80" value="Search our ste:" type="text" />
</span>
<input name="button_search" src="images/search.gif" class="button_search"
type="image" />
</form>
</div>
<div class="clr"></div>
<div class="gadget">
<h2 class="star"><span>Sidebar</span> Menu</h2>
<div class="clr"></div>
<ul class="sb_menu">
<li><a href="#">Home</a></li>
<li><a href="#">TemplateInfo</a></li>
<li><a href="#">Style Demo</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">Archives</a></li>
<li><a href="#">Web Templates</a></li>
</ul>
</div>
<div class="gadget">
<h2 class="star"><span>Sponsors</span></h2>
<div class="clr"></div>
<ul class="ex_menu">
<li><a href="http://www.dreamtemplate.com/">DreamTemplate</a><br />
Over 6,000+ Premium Web Templates</li>
<li><a href="http://www.templatesold.com/">TemplateSOLD</a><br />
Premium WordPress & Joomla Themes</li>
<li><a href="http://www.imhosted.com/">ImHosted.com</a><br />
Affordable Web Hosting Provider</li>
<li><a href="http://www.megastockphotos.com/">MegaStockPhotos</a><br />
Unlimited Amazing Stock Photos</li>
<li><a href="http://www.evrsoft.com/">Evrsoft</a><br />
Website Builder Software & Tools</li>
<li><a href="http://www.csshub.com/">CSS Hub</a><br />
Premium CSS Templates</li>
</ul>
</div>
</div>
<div class="clr"></div>
</div>
</div>
<div class="fbg">
<div class="fbg_resize">
<div class="col c1">
<h2><span>Image</span> Gallery</h2>
<a href="#"><img src="images/gal1.jpg" width="75" height="75" alt="" class="gal"
/></a> <a href="#"><img src="images/gal2.jpg" width="75" height="75" alt=""
class="gal" /></a> <a href="#"><img src="images/gal3.jpg" width="75" height="75" alt=""
class="gal" /></a> <a href="#"><img src="images/gal4.jpg" width="75" height="75" alt=""
class="gal" /></a> <a href="#"><img src="images/gal5.jpg" width="75" height="75" alt=""
class="gal" /></a> <a href="#"><img src="images/gal6.jpg" width="75" height="75" alt=""
class="gal" /></a> </div>
<div class="col c2">
<h2><span>Services</span> Overview</h2>
<p>Curabitur sed urna id nunc pulvinar semper. Nunc sit amet tortor sit amet lacus
sagittis posuere cursus vitae nunc.Etiam venenatis, turpis at eleifend porta, nisl nulla
bibendum justo.</p>
<ul class="fbg_ul">
<li><a href="#">Lorem ipsum dolor labore et dolore.</a></li>
<li><a href="#">Excepteur officia deserunt.</a></li>
<li><a href="#">Integer tellus ipsum tempor sed.</a></li>
</ul>
</div>
<div class="col c3">
<h2><span>Contact</span> Us</h2>
<p>Nullam quam lorem, tristique non vestibulum nec, consectetur in risus. Aliquam a
quam vel leo gravida gravida eu porttitor dui.</p>
<p class="contact_info"> <span>Address:</span> 1458 TemplateAccess, USA<br />
<span>Telephone:</span> +123-1234-5678<br />
<span>FAX:</span> +458-4578<br />
<span>Others:</span> +301 - 0125 - 01258<br />
<span>E-mail:</span> <a href="#">[email protected]</a> </p>
</div>
<div class="clr"></div>
</div>
</div>
<div class="footer">
<div class="footer_resize">
<p class="lf">© Copyright <a href="#">MyWebSite</a>.</p>
<p class="rf">Design by Dream <a href="http://www.dreamtemplate.com/">Web
Templates</a></p>
<div style="clear:both;"></div>
</div>
</div>
</div>
<div align=center>This template downloaded form <a
href='http://all-free-download.com/free-website-templates/'>free website
templates</a></div></body>
SYSTEM TESTING
TESTING METHODOLOGIES
The following are the Testing Methodologies:
1. Unit Testing.
2. Integration Testing.
3. User Acceptance Testing.
4. Output Testing.
5. Validation Testing.
Unit Testing
Unit testing focuses verification effort on the smallest unit of Software design that is the
module. Unit testing exercises specific paths in a module’s control structure to
ensure complete coverage and maximum error detection. This test focuses on each module
individually, ensuring that it functions properly as a unit. Hence, the naming is Unit Testing.
During this testing, each module is tested individually and the module interfaces are verified
for the consistency with design specification. All important processing path are tested for the
expected results. All error handling paths are also tested.
Integration Testing
Integration testing addresses the issues associated with the dual problems of verification and
program construction. After the software has been integrated a set of high order tests are
conducted. The main objective in this testing process is to take unit tested modules and builds
a program structure that has been dictated by design.
Bottom-up Integration
This method begins the construction and testing with the modules at the lowest level in the
program structure. Since the modules are integrated from the bottom up, processing required
for modules subordinate to a given level is always available and the need for stubs is
eliminated. The bottom up integration strategy may be implemented with the following steps:
The low-level modules are combined into clusters into clusters that perform a specific
Software sub-function.
A driver (i.e.) the control program for testing is written to coordinate test case input and
output.
The cluster is tested.
Drivers are removed and clusters are combined moving upward in the program structure
The bottom up approaches tests each module individually and then each module is module is
integrated with a main module and tested for functionality.
Output Testing
After performing the validation testing, the next step is output testing of the proposed system,
since no system could be useful if it does not produce the required output in the specified
format. Asking the users about the format required by them tests the outputs generated or
displayed by the system under consideration. Hence the output format is considered in 2
ways – one is on screen and another in printed format.
Validation Checking
Validation checks are performed on the following fields.
Text Field:
The text field can contain only the number of characters lesser than or equal to its size. The
text fields are alphanumeric in some tables and alphabetic in other tables. Incorrect entry
always flashes and error message.
Numeric Field:
The numeric field can contain only numbers from 0 to 9. An entry of any character flashes an
error messages. The individual modules are checked for accuracy and what it has to perform.
Each module is subjected to test run along with sample data. The individually tested
modules are integrated into a single system. Testing involves executing the real data
information is used in the program the existence of any program defect is inferred from the
output. The testing should be planned so that all the requirements are individually tested.
A successful test is one that gives out the defects for the inappropriate data and produces
and output revealing the errors in the system.
typical values then does not provide a true systems test and in fact ignores the cases most
likely to cause system failure.
USER TRAINING
Whenever a new system is developed, user training is required to educate them about the
working of the system so that it can be put to efficient use by those for whom the system has
been primarily designed. For this purpose the normal working of the project was
demonstrated to the prospective users. Its working is easily understandable and since the
expected users are people who have good knowledge of computers, the use of this system is
very easy.
MAINTAINENCE
This covers a wide range of activities including correcting code and design errors. To reduce
the need for maintenance in the long run, we have more accurately defined the user’s
requirements during the process of system development. Depending on the requirements, this
system has been developed to satisfy the needs to the largest possible extent. With
development in technology, it may be possible to add many more features based on the
requirements in future. The coding and designing is simple and easy to understand which will
make maintenance easier.
TESTING STRATEGY :
A strategy for system testing integrates system test cases and design techniques into a well
planned series of steps that results in the successful construction of software. The testing
strategy must co-operate test planning, test case design, test execution, and the resultant data
collection and evaluation .A strategy for software testing must accommodate low-level
tests that are necessary to verify that a small source code segment has been correctly
implemented as well as high level tests that validate major system functions against user
requirements.
Software testing is a critical element of software quality assurance and represents the ultimate
review of specification design and coding. Testing represents an interesting anomaly for the
software. Thus, a series of testing are performed for the proposed system before the
system is ready for user acceptance testing.
SYSTEM TESTING:
Software once validated must be combined with other system elements (e.g. Hardware,
people, database). System testing verifies that all the elements are proper and that overall
system function performance is
achieved. It also tests to find discrepancies between the system and its original objective,
current specifications and system documentation.
price Field
required
TC_O_004 Order Deleted listing=deleted_id Error or ✅
listing FK NULL,
dependin
g on FK
config
TC_I_001 Image Upload valid listing=3, Image ✅
image image_file="cotton.jpg" saved
successfu
lly
TC_I_002 Image Upload image_file="document.pdf" Error: ✅
invalid file Invalid
type image file
TC_I_003 Image Upload image_file=["img1.jpg", Images ✅
multiple "img2.png"] saved
images successfu
lly for
listing
APPENDIX - A: SCREENS
Home
Patient login
Patient registration
Hospital login
Organ details
User details
Contact
Send Us Email
REPORTS
C.DATA DICTIONARIES
Header Value
Model [Name of Your Django Model]
Name
Description [Brief Description of What the Model Represents]
Fields [List of Field Names (comma-separated)]
Key Fields [Primary Key Field(s) and any important Foreign Key Field(s)]
Data Types [Summary of the main data types used in the model (e.g., Char, Int, FK)]
Constraints [Summary of important constraints (e.g., Unique, Not Null)]
Purpose [Briefly state the main purpose of this model in the application]
Export to Sheets
Header Value
Model UserProfile
Name
Description Stores extended information about users.
Fields user, location, profile_picture
Key Fields user (FK to auth.User, Unique)
Data Types ForeignKey, CharField, ImageField
Constraints user (Unique)
Purpose To hold additional details specific to marketplace users.
Export to Sheets
Header Value
Model Listing
Name
Description Represents an item being listed for sale.
Fields seller, category, title, description, price, image1, created_at, is_sold
Key Fields id (PK), seller (FK to UserProfile), category (FK to Category)
Data Types ForeignKey, CharField, TextField, DecimalField, ImageField, DateTimeField,
BooleanField
Constraints title (Max Length), price
(Max Digits, Decimal Places)
Purpose To store details of items available for sale on the marketplace.
Table 3: Category Model (Example)
Header Value
Model Name Category
Description Stores categories for classifying listings.
Fields name, slug
Key Fields id (PK), slug (Unique)
Data Types CharField, SlugField
Header Value
Model Name Message
Description Stores messages exchanged between users.
Fields sender, receiver, content, timestamp
Key Fields id (PK), sender (FK to UserProfile), receiver (FK to UserProfile)
Data Types ForeignKey, TextField, DateTimeField
Constraints None specific.
Purpose To enable communication between buyers and sellers.
Export to Sheets
Header Value
Model Order
Name
Description Represents a completed or pending transaction.
Fields buyer, seller, listing, order_date, total_price, status
Key Fields id (PK), buyer (FK to UserProfile), seller (FK to UserProfile), listing (FK to
Listing)
Data Types ForeignKey, DateTimeField, DecimalField, CharField
Constraints total_price (Max Digits, Decimal Places), status (Choices)
Purpose To track purchase details and the status of transactions.
Export to Sheets
Table 6: Image Model (Example - if you have a separate model for images)
Header Value
Model Name Image
Description Stores individual images for listings.
Fields listing, image_file
Key Fields id (PK), listing (FK to Listing)
Data Types ForeignKey, ImageField
Constraints None specific.
Purpose To allow multiple images per listing.
D.User manual
On the left side, you will see the Sidebar Menu with the following options:
3. For Donors
Go to Donor page.
Click on Register or Sign Up (if available).
Fill in your details like name, organ willing to donate, medical history, etc.
Submit the form.
Your donation request will be recorded securely on the blockchain.
You can also edit or update your donation offer later.
4. For Patients
Go to Patients page.
Click on Register or Sign Up.
Enter your personal details, organ needed, and any medical documents (if required).
Submit the form.
You can track the status of available organs matching your need.
5. For Hospitals
Go to Hospital page.
Hospitals can register, verify donors and patients, and approve transplantation.
Hospitals will also match donors to patients using blockchain-based records.
Use the Search Bar at the top left to quickly find pages or specific information.
7. Concepts Section
You can explore key concepts like blockchain, organ donation, smart contracts,
etc., in the Concepts box on the sidebar.
8. Additional Features
View information about organ donation day or awareness campaigns (images and
events posted).
Blockchain transactions ensure your data and actions are safe, traceable, and secure.
CONCLUSION
In this paper, we have proposed a private Ethereum blockchain-based solution that manages
organ donation and transplantation in a decentralized, accountable, auditable, traceable,
secure, and trustworthy manner. We developed smart contracts that ensure the data
provenance by recording events automatically. We present six algorithms with their
implementation, testing, and validation details. We analyze the security of the proposed
solution to guarantee that smart contracts are protected against common attacks and
vulnerabilities. We compare our solution to other blockchain-based solutions that are
currently available. We discuss how our solution can be customized with minimal effort to
meet the needs of other systems experiencing similar problems. In the future, our solution can
be improved by developing an end-to end DApp. Furthermore, the smart contracts can be
deployed and tested on a real private Ethereum network. Finally, the Quorum platform can
provide better confidentiality because transactions among entities can only be viewed by
specific participants and nobody else, which is not the case in our solution, where
transactions between two participants are viewed by other actors authorized in the private
blockchain.
Future Enhancements
1. Integration of Artificial Intelligence (AI) for Enhanced Matching
Incorporating AI algorithms can significantly improve donor-recipient matching by analyzing
complex medical data such as blood type, HLA markers, and organ size. This predictive
analysis can lead to more accurate matches and better transplantation outcomes. medRxiv
2. Real-Time Organ Tracking with IoT Devices
The use of Internet of Things (IoT) devices can enable real-time monitoring of organ
transportation, ensuring timely and secure delivery. Sensors can track temperature, location,
and other critical parameters, providing transparency and reducing the risk of organ damage
during transit. IJFMR
3. Enhanced Data Security and Privacy Measures
Implementing advanced encryption techniques and biometric authentication can heighten the
security and privacy of sensitive medical data stored on the blockchain. This ensures
compliance with data protection regulations and builds trust among stakeholders. IJFMR
4. Development of User-Friendly Mobile Applications
Creating dedicated mobile applications for donors, recipients, healthcare professionals, and
administrators can facilitate convenient access to the organ donation system. Features may
include registration, status updates, and communication tools to streamline the donation and
transplantation process. IJFMR
5. Blockchain Interoperability Across Healthcare Systems
Exploring interoperability with other blockchain networks can facilitate seamless data
exchange and collaboration between different healthcare systems. This can lead to a more
unified and efficient organ donation and transplantation network. IJFMR
6. Compliance with Evolving Healthcare Regulations
Ensuring that the blockchain-based system adheres to evolving healthcare regulations and
standards, such as GDPR and HIPAA, is crucial for maintaining data integrity and patient
confidentiality. Regular audits and updates can help in achieving compliance. IJFMR
7. Integration of Telemedicine for Post-Transplant Care
Incorporating telemedicine functionalities can enable remote consultations and follow-ups for
organ recipients, enhancing post-transplantation care and reducing the need for frequent
hospital visits. IJFMR
8. Community Engagement and Awareness Campaigns
Implementing features for community engagement and awareness campaigns can promote
organ donation and transplantation, fostering a supportive ecosystem and encouraging more
individuals to become donors. IJFMR
9. Continuous System Improvement Based on Feedback
Regular updates and enhancements based on user feedback and technological advancements
can ensure that the system remains relevant and effective in addressing evolving needs and
challenges in organ donation management. IJFMR
10. Global Collaboration for Organ Sharing
Establishing supranational crossover programs with international waitlist databases can
facilitate global organ sharing, reducing inequalities and discrimination in organ allocation.
Blockchain's distributed and immutable nature can support such initiatives by providing
secure and transparent data management.
Bibliography
1. Hawashin, D., Jayaraman, R., Salah, K., Yaqoob, I., Simsekler, M. C. E., &
Ellahham, S. (2022). Blockchain-based management for organ donation and
transplantation. IEEE Access, 10, 59013–59025.
2. Igboanusi, I. S., Nnadiekwe, C. A., Ogbede, J. U., Kim, D.-S., & Lensky, A. (2024).
BOMS: Blockchain-enabled organ matching system. Scientific Reports, 14, Article
16069.Nature
3. Ghosh, S., & Dutta, M. (2023). Indriya: Building a secure and transparent organ
donation system with Hyperledger Fabric. arXiv preprint arXiv:2307.02416.
4. Panda, K., & Mazumder, A. (2023). Blockchain-powered supply chain management
for kidney organ preservation. arXiv preprint arXiv:2308.11169.
5. Organ Harbour: A Blockchain Solution for Organ Donation and Transplantation.
(2024). Proceedings of the ACM Conference.
6. Implementation of Blockchain Technology Could Increase Equity in Organ
Transplantation. (2023). Frontiers in Blockchain, 6, Article 9945518.
7. Blockchain for Organ Transplantation: A Survey. (2023). MDPI Journal of Future
Internet, 2(2), 8.MDPI
8. Organ Donation Management Using Blockchain. (2024). International Journal for
Multidisciplinary Research, 6(3), 21398.
9. Platform for Organ Donation and Transplantation Using Blockchain. (2024).
International Journal for Multidisciplinary Research, 6(3), 21399.IJFMR
10. Blockchain-Based Management for Organ Donation and Transplantation. (2025).
International Research Journal of Modernization in Engineering Technology and
Science, 3(3), 70374.IRJMETS
11. A Private Ethereum Blockchain for Organ Donation and Transplantation. (2024).
Alexandria Engineering Journal, 67(1), 1051.
12. Blockchain-Based Organ Donation and Transplant Matching System. (2024).
ResearchGate Publication.
13. Blockchain-Based Management for Organ Donation and Transplantation. (2022).
Elsevier Pure Research Output.NCHR+1ResearchGate+1