feat(proposal): add component diagram
1
figures/components-macro.drawio
Normal file
BIN
figures/components-macro.png
Normal file
After Width: | Height: | Size: 94 KiB |
85
figures/icon-bloodpressure.svg
Normal file
|
@ -0,0 +1,85 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
|
||||
<svg
|
||||
width="800px"
|
||||
height="800px"
|
||||
viewBox="0 0 48 48"
|
||||
fill="none"
|
||||
version="1.1"
|
||||
id="svg2183"
|
||||
sodipodi:docname="icon-bloodpressure.svg"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs2187" />
|
||||
<sodipodi:namedview
|
||||
id="namedview2185"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.48928606"
|
||||
inkscape:cx="458.83179"
|
||||
inkscape:cy="195.18234"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1024"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2183" />
|
||||
<g
|
||||
id="g2673"
|
||||
transform="matrix(0.87020511,0,0,0.87020511,-3.4808204,11.451385)">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="m 21.3702,39.6334 7e-4,7e-4 2.6304,2.3659 2.6281,-2.346 0.0012,-0.001 0.053,-0.0475 0.001,-9e-4 c 0.2226,-0.1998 0.4435,-0.3982 0.6628,-0.5951 C 24.7134,37.1017 23,34.0009 23,30.5 23,24.701 27.701,20 33.5,20 c 3.3352,0 6.3071,1.555 8.2305,3.9794 C 43.2111,21.5454 44,19.164 44,16.6404 44,10.6778 39.2655,6 33.2308,6 29.8168,6 26.5322,7.57272 24.3905,10.0577 L 24,10.5107 23.6095,10.0577 C 21.4678,7.57272 18.1832,6 14.7692,6 8.7345,6 4,10.6778 4,16.6404 c 0,3.6641 1.6632,7.0284 4.69183,10.6869 3.03457,3.6657 7.38587,7.5644 12.67837,12.3061 z"
|
||||
fill="#333333"
|
||||
id="path2175"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M 33.5,39 C 38.1944,39 42,35.1944 42,30.5 42,25.8056 38.1944,22 33.5,22 28.8056,22 25,25.8056 25,30.5 c 0,4.6944 3.8056,8.5 8.5,8.5 z m 0,2 C 39.299,41 44,36.299 44,30.5 44,24.701 39.299,20 33.5,20 27.701,20 23,24.701 23,30.5 23,36.299 27.701,41 33.5,41 Z"
|
||||
fill="#333333"
|
||||
id="path2177"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
<path
|
||||
d="M 36,30.5 C 36,31.8807 34.8807,33 33.5,33 32.1193,33 31,31.8807 31,30.5 31,29.1193 32.1193,28 33.5,28 c 1.3807,0 2.5,1.1193 2.5,2.5 z"
|
||||
fill="#333333"
|
||||
id="path2179"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
<path
|
||||
d="m 28.3219,26.9432 c -0.3927,-0.3927 -0.3927,-1.0294 0,-1.4221 0.3927,-0.3927 1.0294,-0.3927 1.4221,0 l 4.2348,4.2347 c 0.3927,0.3928 0.3927,1.0295 0,1.4222 -0.3928,0.3927 -1.0295,0.3927 -1.4222,0 z"
|
||||
fill="#333333"
|
||||
id="path2181"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="g2894"
|
||||
transform="translate(-0.59227631,1.4491649)">
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:15.6"
|
||||
d="m 30.592638,11.126384 c 4.752626,-0.311701 6.109756,4.0147 6.109756,4.0147"
|
||||
id="path2729"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:15.6"
|
||||
d="m 30.133349,6.3069597 c 9.588227,0.155763 11.363274,8.2133483 11.363274,8.2133483"
|
||||
id="path2729-6"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:15.6"
|
||||
d="M 29.008355,1.5 C 46.058436,1.5 46.5,15.226502 46.5,15.226502"
|
||||
id="path2729-3"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.8 KiB |
53
figures/icon-bluetooth.svg
Normal file
|
@ -0,0 +1,53 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
|
||||
<svg
|
||||
width="800px"
|
||||
height="800px"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
version="1.1"
|
||||
id="svg180"
|
||||
sodipodi:docname="icon-bluetooth.svg"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs184" />
|
||||
<sodipodi:namedview
|
||||
id="namedview182"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.05125"
|
||||
inkscape:cx="400"
|
||||
inkscape:cy="400"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1024"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg180" />
|
||||
<path
|
||||
d="M12.9297 10.6406L15.2597 8.51063L12.9297 6.64062V10.6406Z"
|
||||
fill="#292D32"
|
||||
id="path174"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
<path
|
||||
d="M16.19 2H7.81C4.17 2 2 4.17 2 7.81V16.18C2 19.83 4.17 22 7.81 22H16.18C19.82 22 21.99 19.83 21.99 16.19V7.81C22 4.17 19.83 2 16.19 2ZM16.27 14.39C16.58 14.68 16.76 15.08 16.75 15.49C16.74 15.9 16.55 16.29 16.22 16.57L13.8 18.59C13.38 18.94 13 19.04 12.71 19.04C12.48 19.04 12.3 18.98 12.2 18.93C11.97 18.82 11.43 18.46 11.43 17.48V14.06L8.51 16.74C8.21 17.02 7.73 17 7.45 16.69C7.17 16.38 7.19 15.91 7.5 15.63L11.43 12.03V11.95L7.49 8.38C7.19 8.1 7.17 7.62 7.45 7.32C7.73 7.02 8.21 6.99 8.51 7.27L11.43 9.95V6.53C11.43 5.55 11.97 5.19 12.2 5.08C12.43 4.97 13.05 4.79 13.8 5.42L16.22 7.44C16.55 7.71 16.74 8.11 16.75 8.52C16.76 8.93 16.59 9.33 16.27 9.62L13.67 12L16.27 14.39Z"
|
||||
fill="#292D32"
|
||||
id="path176"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
<path
|
||||
d="M12.9297 17.3608L15.2597 15.4108L12.9297 13.3008V17.3608Z"
|
||||
fill="#292D32"
|
||||
id="path178"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.2 KiB |
7
figures/icon-cloud.svg
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g id="File / Cloud_Upload">
|
||||
<path id="Vector" d="M12 16V10M12 10L9 12M12 10L15 12M23 15C23 12.7909 21.2091 11 19 11C18.9764 11 18.9532 11.0002 18.9297 11.0006C18.4447 7.60802 15.5267 5 12 5C9.20335 5 6.79019 6.64004 5.66895 9.01082C3.06206 9.18144 1 11.3498 1 13.9999C1 16.7613 3.23858 19.0001 6 19.0001L19 19C21.2091 19 23 17.2091 23 15Z" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 657 B |
5
figures/icon-database.svg
Normal file
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M21 5C21 6.65685 16.9706 8 12 8C7.02944 8 3 6.65685 3 5M21 5C21 3.34315 16.9706 2 12 2C7.02944 2 3 3.34315 3 5M21 5V19C21 20.66 17 22 12 22C7 22 3 20.66 3 19V5M21 9.72021C21 11.3802 17 12.7202 12 12.7202C7 12.7202 3 11.3802 3 9.72021M21 14.44C21 16.1 17 17.44 12 17.44C7 17.44 3 16.1 3 14.44" stroke="#000000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
After Width: | Height: | Size: 613 B |
3
figures/icon-graph.svg
Normal file
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M15 20V1h-4v19zm-1-1h-2V8h2zM12 2h2v5h-2zM5 20h4v-9H5zm3-1H6v-2h2zm-2-7h2v4H6zm11 8h4V5h-4zm3-1h-2v-7h2zM18 6h2v5h-2zM2 22h21v1H1V1h1z"/><path fill="none" d="M0 0h24v24H0z"/></svg>
|
After Width: | Height: | Size: 398 B |
62
figures/icon-notification.svg
Normal file
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
|
||||
<svg
|
||||
width="800px"
|
||||
height="800px"
|
||||
viewBox="0 0 24 24"
|
||||
fill="none"
|
||||
version="1.1"
|
||||
id="svg1261"
|
||||
sodipodi:docname="icon-notification.svg"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs1265" />
|
||||
<sodipodi:namedview
|
||||
id="namedview1263"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.12125"
|
||||
inkscape:cx="400.89186"
|
||||
inkscape:cy="400.89186"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1024"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg1261" />
|
||||
<path
|
||||
d="M19 8C20.6569 8 22 6.65685 22 5C22 3.34315 20.6569 2 19 2C17.3431 2 16 3.34315 16 5C16 6.65685 17.3431 8 19 8Z"
|
||||
stroke="#292D32"
|
||||
stroke-width="1.5"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
id="path1255"
|
||||
style="stroke:#000000;stroke-opacity:1" />
|
||||
<path
|
||||
d="M14 2H9C4 2 2 4 2 9V15C2 20 4 22 9 22H15C20 22 22 20 22 15V10"
|
||||
stroke="#292D32"
|
||||
stroke-width="1.5"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
id="path1257"
|
||||
style="stroke:#000000;stroke-opacity:1" />
|
||||
<path
|
||||
d="M6.80998 14.9299C6.45998 13.8299 6.86998 12.4599 8.02998 12.0899C8.63998 11.8899 9.38998 12.0599 9.81998 12.6499C10.22 12.0399 11 11.8999 11.6 12.0899C12.76 12.4599 13.17 13.8299 12.82 14.9299C12.27 16.6799 10.35 17.5899 9.81998 17.5899C9.27998 17.5799 7.37998 16.6899 6.80998 14.9299Z"
|
||||
stroke="#292D32"
|
||||
stroke-width="1.5"
|
||||
stroke-linecap="round"
|
||||
stroke-linejoin="round"
|
||||
id="path1259"
|
||||
style="stroke:#000000;stroke-opacity:1" />
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
186
figures/icon-smartwatch.svg
Normal file
|
@ -0,0 +1,186 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
|
||||
<svg
|
||||
width="800px"
|
||||
height="800px"
|
||||
viewBox="0 0 32 32"
|
||||
enable-background="new 0 0 32 32"
|
||||
version="1.1"
|
||||
xml:space="preserve"
|
||||
id="svg290"
|
||||
sodipodi:docname="icon-smartwatch.svg"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><defs
|
||||
id="defs294" /><sodipodi:namedview
|
||||
id="namedview292"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.72037089"
|
||||
inkscape:cx="322.75041"
|
||||
inkscape:cy="453.23875"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1024"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg290" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch41" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch40" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch39" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch38" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch37" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch36" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch35" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch34" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch33" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch32" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch31" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch30" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch29" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch28" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch27"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
transform="matrix(1.0666667,0,0,1.0666667,-1.1333339,-1.0666667)">
|
||||
|
||||
<g
|
||||
id="g262"
|
||||
style="fill:#000000;fill-opacity:1">
|
||||
|
||||
<path
|
||||
d="M 27,13 H 26 V 9 C 26,7.35 24.65,6 23,6 H 21.82 10.18 9 C 7.35,6 6,7.35 6,9 v 14 c 0,1.65 1.35,3 3,3 H 10.18 21.82 23 c 1.65,0 3,-1.35 3,-3 v -4 h 1 c 0.5522,0 1,-0.4473 1,-1 v -4 c 0,-0.5527 -0.4478,-1 -1,-1 z m -5,3 h -2.38 l -2.73,5.45 C 16.72,21.79 16.38,22 16,22 15.96,22 15.91,22 15.87,21.99 15.44,21.93 15.1,21.62 15.02,21.2 l -1.34,-6.7 -0.75,1.87 C 12.78,16.75 12.41,17 12,17 H 10 C 9.45,17 9,16.55 9,16 9,15.45 9.45,15 10,15 h 1.32 l 1.75,-4.37 c 0.17,-0.41 0.58,-0.67 1.02,-0.63 0.44,0.04 0.8,0.37 0.89,0.8 l 1.43,7.15 1.7,-3.4 C 18.27,14.21 18.62,14 19,14 h 3 c 0.55,0 1,0.45 1,1 0,0.55 -0.45,1 -1,1 z"
|
||||
fill="#364F6B"
|
||||
id="path256"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
|
||||
<path
|
||||
d="m 19.38,4 h 2.04 L 20.98,1.8 C 20.89,1.34 20.48,1 20,1 H 12 C 11.52,1 11.11,1.34 11.02,1.8 L 10.58,4 h 2.04 z"
|
||||
fill="#3FC1C9"
|
||||
id="path258"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
|
||||
<path
|
||||
d="m 12.62,28 h -2.04 l 0.44,2.2 c 0.09,0.46 0.5,0.8 0.98,0.8 h 8 c 0.48,0 0.89,-0.34 0.98,-0.8 L 21.42,28 h -2.04 z"
|
||||
fill="#3FC1C9"
|
||||
id="path260"
|
||||
style="fill:#000000;fill-opacity:1" />
|
||||
|
||||
</g>
|
||||
|
||||
</g>
|
||||
|
||||
<g
|
||||
id="Smart_Watch26" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch25" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch24" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch23" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch22" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch21" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch20" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch19" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch18" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch17" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch16" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch15" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch14" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch13" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch12" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch11" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch10" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch09" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch08" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch07" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch06" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch05" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch04" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch03" />
|
||||
|
||||
<g
|
||||
id="Smart_Watch02" />
|
||||
|
||||
</svg>
|
After Width: | Height: | Size: 3.5 KiB |
8
figures/icon-stethoscope.svg
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="windows-1252"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg fill="#000000" height="800px" width="800px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 201.324 201.324" xml:space="preserve">
|
||||
<circle cx="95.596" cy="10.083" r="10.083"/>
|
||||
<circle cx="149.018" cy="10.083" r="10.083"/>
|
||||
<path d="M179.06,19.254c-5.123-8.873-14.298-14.17-24.544-14.17v10c6.631,0,12.568,3.428,15.884,9.17 c3.316,5.743,3.316,12.599,0.001,18.342l-32.122,55.636c-3.315,5.742-9.253,9.17-15.884,9.171c-6.631,0-12.569-3.428-15.885-9.171 L74.389,42.595c-3.315-5.742-3.315-12.599,0-18.341s9.254-9.171,15.885-9.171v-10c-10.246,0-19.422,5.297-24.545,14.171 s-5.123,19.468,0,28.341l32.121,55.636c4.272,7.399,11.366,12.299,19.545,13.727v26.832c0,26.211-15.473,47.535-34.492,47.535 c-19.019,0-34.491-21.324-34.491-47.535v-31.948C59.802,109.52,68.4,99.424,68.4,87.356c0-13.779-11.21-24.989-24.989-24.989 s-24.989,11.21-24.989,24.989c0,12.067,8.598,22.163,19.989,24.486v31.948c0,31.725,19.959,57.535,44.492,57.535 c24.532,0,44.491-25.81,44.491-57.535v-26.832c8.178-1.428,15.273-6.328,19.544-13.727l32.122-55.636 C184.184,38.722,184.184,28.127,179.06,19.254z"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
63
figures/icon-thermometer.svg
Normal file
|
@ -0,0 +1,63 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
|
||||
<svg
|
||||
fill="#000000"
|
||||
width="800px"
|
||||
height="800px"
|
||||
viewBox="0 0 24 24"
|
||||
version="1.1"
|
||||
id="svg3327"
|
||||
sodipodi:docname="icon-thermometer.svg"
|
||||
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs3331" />
|
||||
<sodipodi:namedview
|
||||
id="namedview3329"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
showgrid="false"
|
||||
inkscape:zoom="0.36087195"
|
||||
inkscape:cx="-286.80533"
|
||||
inkscape:cy="333.91346"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1024"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg3327" />
|
||||
<path
|
||||
d="m1.522 1.298-.233.233c-.797.801-1.29 1.905-1.29 3.124s.493 2.323 1.29 3.124l12.577 12.577c.524.524 1.224.87 2.005.942l.013.001 4.014.362 1.974 1.974c.229.251.557.407.922.407.689 0 1.247-.558 1.247-1.247 0-.364-.156-.691-.404-.919l-.001-.001-1.974-1.974-.362-4.014c-.078-.792-.423-1.491-.943-2.017l-12.576-12.576c-.801-.797-1.905-1.29-3.125-1.29-1.223 0-2.331.496-3.132 1.298zm18.013 13.381c.339.342.565.798.616 1.305l.001.009.32 3.52-.972.973-3.52-.32c-.517-.048-.973-.275-1.313-.617l-.452-.451.856-.856-.623-.625-.855.856-1.13-1.13.856-.856-.623-.625-.855.856-1.141-1.139.855-.856-.625-.625-.855.856-1.13-1.13.856-.856-.625-.625-.855.856-1.139-1.139.855-.856-.625-.625-.855.856-1.129-1.13.855-.856-.625-.625-.855.856-1.139-1.139.855-.856-.624-.625-.856.856-.943-.942c-.592-.593-.959-1.411-.959-2.315s.366-1.723.959-2.315l.233-.233c.593-.592 1.411-.959 2.315-.959s1.723.366 2.315.959z"
|
||||
id="path3323" />
|
||||
<path
|
||||
d="m4.389 4.397c-.121.122-.195.29-.195.476s.075.353.195.476l13.28 13.28c.125.16.318.262.535.262.374 0 .678-.303.678-.678 0-.217-.102-.41-.26-.534l-.001-.001-13.28-13.28c-.122-.121-.29-.195-.476-.195s-.353.074-.475.195z"
|
||||
id="path3325" />
|
||||
<g
|
||||
id="g2894"
|
||||
transform="matrix(0.50000001,0,0,0.50000001,0.00491087,0.02137442)">
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:15.6"
|
||||
d="m 30.592638,11.126384 c 4.752626,-0.311701 6.109756,4.0147 6.109756,4.0147"
|
||||
id="path2729"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:15.6"
|
||||
d="m 30.133349,6.3069597 c 9.588227,0.155763 11.363274,8.2133483 11.363274,8.2133483"
|
||||
id="path2729-6"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:15.6"
|
||||
d="M 29.008355,1.5 C 46.058436,1.5 46.5,15.226502 46.5,15.226502"
|
||||
id="path2729-3"
|
||||
sodipodi:nodetypes="cc" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.2 KiB |
3
figures/icon-user.svg
Normal file
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg fill="#000000" width="800px" height="800px" viewBox="0 0 56 56" xmlns="http://www.w3.org/2000/svg"><path d="M 28.0117 27.3672 C 33.0508 27.3672 37.3867 22.8672 37.3867 17.0078 C 37.3867 11.2187 33.0274 6.9297 28.0117 6.9297 C 22.9961 6.9297 18.6367 11.3125 18.6367 17.0547 C 18.6367 22.8672 22.9961 27.3672 28.0117 27.3672 Z M 13.2930 49.0703 L 42.7305 49.0703 C 46.4101 49.0703 47.7226 48.0156 47.7226 45.9531 C 47.7226 39.9062 40.1523 31.5625 28.0117 31.5625 C 15.8477 31.5625 8.2774 39.9062 8.2774 45.9531 C 8.2774 48.0156 9.5898 49.0703 13.2930 49.0703 Z"/></svg>
|
After Width: | Height: | Size: 692 B |
|
@ -39,38 +39,38 @@
|
|||
Clinical deterioration is a critical concern in healthcare, particularly for vulnerable populations such as the elderly and chronically
|
||||
ill patients. It refers to a decline in a patient's health status and may lead to adverse outcomes, including hospitalization,
|
||||
longer stays in intensive care units, and increased healthcare costs.
|
||||
Early warning scores (EWS) have been widely adopted internationally for early detection of deteriorating patients\cite{downey_strengths_2017}.
|
||||
Early warning scores (EWS) have been widely adopted internationally for preemptive detection of deteriorating patients\cite{downey_strengths_2017}.
|
||||
A large body of scientific evidence validates the effectiveness of EWS in assessing severity of illness, and in predicting adverse clinical events,
|
||||
such as severe deterioration, likelihood of ICU admission, and mortality, both on hospital wards\cite{subbe_validation_2001, buist_association_2004, paterson_prediction_2006, alam_exploring_2015, bilben_national_2016, brekke_value_2019}
|
||||
such as severe deterioration, likelihood of intensive care unit (ICU) admission, and mortality, both in hospital wards\cite{subbe_validation_2001, buist_association_2004, paterson_prediction_2006, alam_exploring_2015, bilben_national_2016, brekke_value_2019}
|
||||
and in ambulatory care \cite{ehara_effectiveness_2019, burgos-esteban_effectiveness_2022, paganelli_conceptual_2022}.
|
||||
|
||||
Two common implementations are the \textit{Modified Early Warning Score} (MEWS) and the
|
||||
\textit{National Early Warning Score 2} (NEWS2)\cite{burgos-esteban_effectiveness_2022}.
|
||||
Two commonly used clinical scores are the \textit{National Early Warning Score 2} (NEWS2) and the
|
||||
\textit{Modified Early Warning Score} (MEWS)\cite{burgos-esteban_effectiveness_2022}.
|
||||
Both are calculated by capturing various vital parameters from the patient at a specific point in time, followed by numerical aggregation of the
|
||||
captured data according to the specifically used score\cite{subbe_validation_2001, noauthor_national_2017}.
|
||||
For MEWS, each type of vitals parameter is assigned an individual score based on which range it is in.
|
||||
captured data according to the score being used\cite{subbe_validation_2001, noauthor_national_2017}.
|
||||
For MEWS, each measured physiological parameter is assigned an individual score based on which range it is in.
|
||||
The ranges for scoring each parameter are shown in table \ref{mews-table}.
|
||||
The individual scores are then added together to produce the final MEWS.
|
||||
The ranges for individual scores for each type of vital parameter is shown in table \ref{mews-table}.
|
||||
|
||||
\begin{table}[!h]
|
||||
\noindent\adjustbox{max width=\textwidth}{
|
||||
\begin{NiceTabular}{l>{\columncolor{red!15}}c>{\columncolor{orange!15}}c>{\columncolor{yellow!15}}c>{\columncolor{green!15}}c>{\columncolor{yellow!15}}c>{\columncolor{orange!15}}c>{\columncolor{red!15}}c}[hvlines,colortbl-like]
|
||||
\hline
|
||||
& $\mathbf{+3}$ & $\mathbf{+2}$ & $\mathbf{+1}$ & $\mathbf{+0}$ & $\mathbf{+1}$ & $\mathbf{+2}$ & $\mathbf{+3}$ \\
|
||||
Individual Score & $\mathbf{+3}$ & $\mathbf{+2}$ & $\mathbf{+1}$ & $\mathbf{+0}$ & $\mathbf{+1}$ & $\mathbf{+2}$ & $\mathbf{+3}$ \\
|
||||
\hline
|
||||
Systolic Blood Pressure [mmHg] & $<70$ & $71-80$ & $81-100$ & $101-199$ & & $\geq 200$ & \\
|
||||
\textbf{Systolic Blood Pressure} [mmHg] & $<70$ & $71-80$ & $81-100$ & $101-199$ & & $\geq 200$ & \\
|
||||
\hline
|
||||
Heart Rate [bpm] & & $<40$ & $41-50$ & $51-100$ & $101-110$ & $111-129$ & $\geq 130$ \\
|
||||
\textbf{Heart Rate} [bpm] & & $<40$ & $41-50$ & $51-100$ & $101-110$ & $111-129$ & $\geq 130$ \\
|
||||
\hline
|
||||
Respiratory Rate [bpm] & & $<9$ & & $9-14$ & $15-20$ & $21-29$ & $\geq 30$ \\
|
||||
\textbf{Respiratory Rate} [bpm] & & $<9$ & & $9-14$ & $15-20$ & $21-29$ & $\geq 30$ \\
|
||||
\hline
|
||||
Temperature [°C] & & $<35$ & & $35-38.4$ & & $\geq 38.5$ & \\
|
||||
\textbf{Temperature} [°C] & & $<35$ & & $35-38.4$ & & $\geq 38.5$ & \\
|
||||
\hline
|
||||
AVPU score & & & & alert & reacting to voice & reacting to pain & unresponsive \\
|
||||
\textbf{AVPU} & & & & alert & reacting to voice & reacting to pain & unresponsive \\
|
||||
\hline
|
||||
\end{NiceTabular}
|
||||
}
|
||||
\caption{\label{mews-table}MEWS calculation thresholds}
|
||||
\caption{\label{mews-table}MEWS calculation ranges}
|
||||
\end{table}
|
||||
|
||||
Traditionally, doctors and nursing staff perform collection and evaluation of the data manually, inputting data into an EWS-calculator by hand.
|
||||
|
@ -87,7 +87,6 @@ commercially available\cite{noauthor_visi_nodate, noauthor_equivital_nodate, noa
|
|||
|
||||
%Javanbakht et al. found that continuous vitals monitoring is more cost-effective than intermittent monitoring\cite{javanbakht_cost_2020}, however the findings of this study should be taken lightly due to potential bias reporting.
|
||||
|
||||
|
||||
\section{Motivation}
|
||||
|
||||
% TODO EWS makes prediction value better than monitoring abnormalities in single vital signs
|
||||
|
@ -105,20 +104,21 @@ assess their practicability for remote monitoring of at-risk patients at home.
|
|||
Some studies have examined monitoring vital signs of at-home-patients for abnormalities in an experimental setting,
|
||||
however in most of them, no automated EWS calculations were made\cite{archip_iot_2016, azimi_medical_2016, chowdary_efficient_2018, yeri_iot_2020, lee_all-day_2020, athira_design_2020, phaltankar_curaband_2021, thippeswamy_prototype_2021}.
|
||||
In 2015, Anzanpour et al. developed a monitoring system which collects vitals data and calculates EWS, however due to limited or nonexistent
|
||||
availability of wireless sensors for all vital signs relevant to EWS, the work was limited to using a laboratory prototype
|
||||
availability of wireless sensors for all relevant vital signs, the work was limited to using a laboratory prototype
|
||||
and required manual interaction in transferring vitals data\cite{anzanpour_internet_2015}.
|
||||
Sahu et al. documented their development of an EWS-supported digital early warning system using the PM6750\cite{sahu_internet--things-enabled_2022},
|
||||
an experimental vitals data monitoring device capable of taking continuous measurements in a laboratory setting\cite{noauthor_pm6750_nodate}.
|
||||
However, their methodology of real-time EWS calculation using data gathered in the laboratory is inconsistent and was not demonstrated.
|
||||
However, the methodology they used to calculate EWS in real-time with laboratory data is both inconsistent and weak.
|
||||
|
||||
In summary, with the current availability of wearable, networked biosensors and the effectiveness of EWS in medical facilities, combining
|
||||
both aspects presents an important and interesting research opportunity which could help reduce mortality and improve clinical outcomes
|
||||
for patients at risk of deterioration, both in their homes and on the go.
|
||||
In summary, with the current availability of wearable, networked biosensors and the validated effectiveness of EWS in medical facilities,
|
||||
combining both aspects presents an important and interesting research opportunity which could help reduce mortality and improve clinical
|
||||
outcomes for patients at risk of deterioration, both in their homes and on the go.
|
||||
|
||||
%Patients appreciate the face-to-face aspect of early warning score monitoring as it allows for reassurance, social interaction, and gives them further opportunity to ask questions about their medical care\cite{downey_patient_2018}.
|
||||
%Taking continuous measurements is superior to measuring intermittently\cite{gronbaek_continuous_2023, shaik_remote_2023}.
|
||||
|
||||
|
||||
\newpage
|
||||
\section{Objectives}
|
||||
|
||||
The objective of this research is to explore the practical feasibility of using an existing, clinically validated EWS to remotely monitor
|
||||
|
@ -127,42 +127,68 @@ utilizing smart medical sensor devices.
|
|||
Taking measurements using the devices should be as easy and unintrusive as possible for the patient, enabling them to take
|
||||
vital sign readings easily from the comfort of their home or while out of the house.
|
||||
|
||||
MEWS will be used as an EWS for deterioration monitoring.
|
||||
Furthermore, individual vital signs will be monitored for abnormalities.
|
||||
The following vital signs will be captured:
|
||||
This will be accomplished by developing and subsequently evaluating a digital system capable of capturing, processing and monitoring patient
|
||||
vitals data.
|
||||
The system will consist of a network of smart medical sensors and a centralized web application used to store and process the data.
|
||||
Patients and, potentially, medical staff can interact with the application to visualize and utilize captured data.
|
||||
In addition to monitoring individual physiological parameters for abnormalities, the application will calculate the patient's current
|
||||
MEWS, and send alerts when an increased risk of deterioration is detected.
|
||||
A visualization depicting the main flow of data in the system is shown in figure \ref{system-components-macro}.
|
||||
\begin{center}
|
||||
\begin{figure}[h]
|
||||
\includegraphics[width=\textwidth]{../figures/components-macro.png}
|
||||
\caption{\label{system-components-macro}Data flow of the proposed early warning system}
|
||||
\end{figure}
|
||||
\end{center}
|
||||
|
||||
The following vital signs will be captured and processed by the application:
|
||||
\begin{itemize}
|
||||
\item Heart Rate (HR)
|
||||
\item Blood Pressure (BP)
|
||||
\item Respiratory Rate (RR)
|
||||
\item Body Temperature (TEMP)
|
||||
\item Blood Oxygen Saturation (SPO2)
|
||||
\item Respiratory Rate (RR)
|
||||
\footnote{
|
||||
Determining the respiration rate of a mobile subject accurately using currently available electronic monitoring equipment
|
||||
presents a major challenge.
|
||||
Leveraging available SPO2 readings alongside asking the subject whether they are experiencing any shortness of breath
|
||||
may, however, provide a suitable compromise.
|
||||
}
|
||||
\item AVPU Score
|
||||
\footnote{
|
||||
Determining the AVPU score of a patient requires examination by qualified medical staff, but prompting
|
||||
the user to answer a simple question coherently to determine whether they are alert or not may be a suitable option.
|
||||
}
|
||||
\end{itemize}
|
||||
The following smart medical devices will be used to take vital sign measurements:
|
||||
|
||||
The devices listed in table \ref{device-table} will be used to measure the patient's vital signs, while
|
||||
the web application and its alert system prompts the patient periodically to take new measurements.
|
||||
\begin{table}[!h]
|
||||
\noindent\adjustbox{max width=\textwidth}{
|
||||
\begin{NiceTabular}{lll}[hvlines,colortbl-like]
|
||||
\hline
|
||||
\textbf{Device Name} & \textbf{Device Type} & \textbf{Captured Vitals Parameter} \\
|
||||
\hline
|
||||
\href{https://www.withings.com/de/en/scanwatch}{Withings Scanwatch} & Wearable Smartwatch & HR, SPO2, RR (sleeping) \\
|
||||
\href{https://www.withings.com/de/en/scanwatch}{Withings Scanwatch} & Wearable Smartwatch & HR, SPO2, RR (while asleep) \\
|
||||
\hline
|
||||
\href{https://www.withings.com/de/en/thermo}{Withings Thermo} & Handheld Smart Thermometer & TEMP \\
|
||||
\hline
|
||||
\href{https://www.withings.com/de/en/bpm-core}{Withings BPM Core} & Smart Blood Pressure Cuff & BP, HR \\
|
||||
\hline
|
||||
Patient's phone & Smartphone & AVPU \\
|
||||
\hline
|
||||
\end{NiceTabular}
|
||||
}
|
||||
\caption{\label{device-table}Smart Devices used for data capture}
|
||||
\caption{\label{device-table}Smart devices used for data capture}
|
||||
\end{table}
|
||||
|
||||
This will be accomplished by designing and developing a web application that can capture and process vitals data from a wide range of
|
||||
smart medical sensors, and accurately calculates the MEWS based on the captured data.
|
||||
If the calculated value lies outside of the acceptable MEWS threshold, both the patient and medical staff can be alerted,
|
||||
allowing preemptive action to be taken.
|
||||
Following the technical implementation of the described system, its day-to-day usability and effectiveness will be evaluated in
|
||||
a case study.
|
||||
% TODO set timescale
|
||||
A test subject, representing a patient recently dismissed from an accident and emergency hospital department (A\&E) will be using
|
||||
the system for a week both from home and while away from home.
|
||||
|
||||
|
||||
\newpage
|
||||
\section{Tasks}
|
||||
|
||||
\newpage
|
||||
|
|