-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathResearch.html
More file actions
executable file
·200 lines (158 loc) · 9.6 KB
/
Research.html
File metadata and controls
executable file
·200 lines (158 loc) · 9.6 KB
1
2
3
4
5
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="">
<meta name="author" content="">
<title>Research</title>
<!-- Bootstrap core CSS -->
<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Custom fonts for this template -->
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Varela+Round" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Nunito:200,200i,300,300i,400,400i,600,600i,700,700i,800,800i,900,900i" rel="stylesheet">
<!-- Custom styles for this template -->
<link href="css/grayscale.min.css" rel="stylesheet">
</head>
<body id="page-top">
<!-- Navigation -->
<nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav">
<div class="container">
<a class="navbar-brand js-scroll-trigger" href="#page-top">Team 18</a>
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
Menu
<i class="fas fa-bars"></i>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto">
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="index.html">Home</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="Research.html">Research</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="Requirements.html">Requirements</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="HCI.html">HCI</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="Design.html">Design</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="Testing.html">Testing</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="Evaluation.html">Evaluation</a>
</li>
<li class="nav-item">
<a class="nav-link js-scroll-trigger" href="Management.html">Management</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- about Section -->
<section id="about" class="about-section">
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto">
<strong><h1 style="color:#729E9D"><img src="img/MostafaIcons_ResearchIcon.png" alt="pic" height="75" width="75" class="img-fluid" hspace="15"> RESEARCH</h1></strong><br>
<!-- Decentralized requirement -->
<h5 class="text-white mb-4"><span style="color:#729E9D; font-weight:bold">
1.</span> Improving the current data storage system (MongoDB) from centralised to decentralised</h5>
<span class="text-white-50">This proved to be the most challenging requirement we were faced with due to the fact that
there hasn't been yet a fully functional system developed that could store the health data in the FHiR Format decentrally.
Such that in addition to storing the data for our project, there needs to be an API that could grab this data from the
storage system so that it can be represented as visualisations. Throughout our research we only manage to find research papers
but there wasnt any implementations! <br><br>
At first, we thought we were going to use blockchain for this project as suggested by our client,
but after a lot of research we found an alternate solution to blockchain which is Solid Inrupt. <br><br>
<img src="img/solid.png" alt="pic" class="img-fluid" ><br>
<span style="color:#729E9D;">[9]</span><br>
How is a blockchain database different from a regular database? <br><br>
</span>
<ol style="color:#729E9D">
<span style="color:grey">
<li style="color:#729E9D; font-weight:bold" > <span style="color:grey; font-weight:normal ">“If confidentiality is the only goal, and trust is not an issue,
blockchain databases pose no advantage over a centralized database” </span><span style="color:#729E9D;">[1]</span></li><br>
<li style="color:#729E9D; font-weight:bold"> <span style="color:grey; font-weight:normal">
“A blockchain is a distributed ledger that can be used between parties that don’t trust each other with data” </span><span style="color:#729E9D;">[2]</span>
</li><br>
<li style="color:#729E9D; font-weight:bold"><img src="img/Mostafa_Table-01.png" alt="pic" height="620" width="720" class="img-fluid" ></li>
<br>
<li style="color:#729E9D; font-weight:bold">
<ol style="color:#729E9D;">
<span style="color:grey; font-weight:normal">
<span style="color:#729E9D; font-weight:bold"> a.</span> Traditional Databases:<span style="color:#729E9D;; font-weight:bold"> [3]</span><br><br>
<span style="color:#729E9D; font-weight:bold">-</span> Client-Server Network architectures <br>
<span style="color:#729E9D; font-weight:bold">-</span> User modifies data <br>
<span style="color:#729E9D; font-weight:bold">-</span> Data is stored on one server <br>
<span style="color:#729E9D; font-weight:bold">-</span> Control of database only managed by a single entity
Database allows create, read, update and delete operations <br><br>
<span style="color:#729E9D; font-weight:bold"> b.</span> Blockchain Databases:<span style="color:#729E9D; font-weight:bold"> [4]</span><br><br>
<span style="color:#729E9D; font-weight:bold">-</span> Several decentralized nodes <br>
<span style="color:#729E9D; font-weight:bold">-</span> All nodes verify additions to the database <br>
<span style="color:#729E9D; font-weight:bold">-</span> Append only <br>
<span style="color:#729E9D; font-weight:bold">-</span> Once entries are made, they can’t be altered or delete
</span>
</ol>
</li>
</span>
</ol>
<span class="text-white-50">
<br><br>
In conclusion, although a blockchain database would be useful in some applications, in the case of FHIR FLI version 2.0 it won’t be useful or needed due to the reasons stated above.
For instance, it is mainly used when there are trust issues between parties using the database which isn’t the case here.
It only allows appending of data and doesn’t allow its modification which is a negative feature in this case since we need to allow the user to modify his data as password.
Also, a database implementation offers an advantage in terms of speed and efficiency.<br><br>
Finally, there is no need of several people/users managing the blockchain database and this isn’t a feasible solution,
in this case we only need one server/entity managing the database which aligns with the regular database implementation.<br><br>
<img src="img/Unknown.png" alt="pic" height="320" width="320" class="centerme" >
</span><br><br>
<!-- Fitbit requirement -->
<h5 class="text-white mb-4"><span style="color:#729E9D; font-weight:bold">2.</span> Fitbit API data visualisations.</h5>
<h7 class="text-white mb-4"><span style="color:#729E9D; font-weight:bold"></span> Fitbit Web API </h7>
<p class="text-white-50"> Application Programming interfaces are used to add additional functionality to the existing programs usually through communicating with a 3rd party
software, in this case the Fitbit servers. Such that, our program sends the Fitbit servers requests for accessing data from Fitbit activity trackers (such as the Fitbit watch). This data is then returned
to out program through HTTP requests and it is used in making the visualisations.<br><br>
<span><strong>Here is how it works</strong></span><br><br>
The Fitbit Web API mainly relies on OAuth 2.0 framework which essentially asks the Fitbit user whether they give consent to FHIR FLI 2.0 to use their personal Fitbit data or not.
In some cases specifying exactly what kind of data will be used by FHIR FLI. Here is the main gist of Authorization Code Grant Flow used by OAuth 2.0. <br><br>
<img src="img/Authorization_Code_Flow.png" alt="pic" height="720" width="620" class="centerme" ><br>
<span style="color:#729E9D; font-weight:bold"> [5]</span> <br><br>
<h4 class="text-white mb-4">References</h4>
<span class="text-white-50">
[1] <a href="https://www.coindesk.com/information/what-is-the-difference-blockchain-and-database?fbclid=IwAR2VzdEXHArqYUhOsHhXEi_xpeZB7pMfBPlV2e9PUoZfSLk5r0KSAxds8AA">CoinDesk</a><br>
[2] <a href="https://coinsutra.com/blockchain-vs-database/">Coinsutra</a><br>
[3] <a href="https://hackernoon.com/blockchains-versus-traditional-databases-c1a728159f79">Hackernoon</a><br>
[4] <a href="https://www.quora.com/Whats-the-difference-between-blockchain-and-a-database">Qoura</a> <br>
[5] <a href="https://dev.fitbit.com/build/reference/web-api/oauth2/">Fitbit Web API Documentation</a> <br>
<!-- [6] <a href="https://www.hl7.org/fhir/overview.html">HL7 Organisation</a> <br>
[7] <a href="https://www.npmjs.com/package/data-model-mapper-plus">NPM</a> <br>
[8] <a href="https://www.hl7.org/fhir/observation.html">HL7 Observation Schema</a> <br>
[9] <a href="https://solid.inrupt.com/how-it-works">Solid Inrupt</a> <br>
-->
</span>
</p>
</span>
</div>
</div>
</div>
</section>
<!-- Footer -->
<footer class="bg-black small text-center text-white-50">
<div class="container">
</div>
</footer>
<!-- Bootstrap core JavaScript -->
<script src="vendor/jquery/jquery.min.js"></script>
<script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
<!-- Plugin JavaScript -->
<script src="vendor/jquery-easing/jquery.easing.min.js"></script>
<!-- Custom scripts for this template -->
<script src="js/grayscale.min.js"></script>
</body>
</html>