Urko Larrañaga Piedra Head of Blockchain

Blockchain en el sector salud: Aplicaciones y ventajas

Los avances tecnológicos de las últimas décadas han mejorado nuestra calidad de vida de manera sustancial. Aún así, siguen siendo muchos los hitos científicos por alcanzar, así como los retos técnicos a abordar.

¿Podría añadir algún tipo de valor la tecnología Blockchain en el sector salud? Esta es una reflexión a la orden del día. Son varios los foros o eventos en los que se reúnen médicos y tecnólogos para debatir sobre este desafío, como por ejemplo el evento Healt20Basque en el que también participó Izertis.

Aplicaciones en el ámbito sanitario

En las siguientes líneas explicaremos tres ejemplos dónde se podría aplicar la tecnología de la cadena de bloques en la sanidad.

1. Historial clínico controlado y único

El sistema sanitario actual es un sistema descentralizado donde la historia clínica de cada paciente se encuentra distribuida por múltiples centros. Cada centro almacena parte del historial de cada usuario, el cual no llega a compartir con los demás. Como consecuencia, los pacientes se ven obligados a repetir pruebas, incluso se les aplican los mismos tratamientos que en su día no surtieron efecto.

La tecnología Blockchain permitirá superar este hándicap. La construcción de un sistema que permita compartir información entre los centros médicos es una realidad a nuestro alcance. La cadena de bloques garantiza la inmediatez y vigencia de los datos a todos los participantes del sistema, por lo que, esta tecnología encaja como anillo al dedo en el descentralizado sistema sanitario actual.

Gracias a la aplicación de esta tecnología se conseguirá:

  • Evitar pruebas duplicadas que se realizan a los pacientes, lo que conlleva también una disminución de costes.
  • Información crítica actualizada sin la necesidad de ningún tipo de trámite.
  • Control sobre historial de cada paciente frente a posibles casos de negligencia, conocimiento sobre quien accede al historial y el autor de cada registro.

2. Confidencialidad y nuevo conocimiento

El compartir información y la falta de confidencialidad no tienen por qué estar relacionados. La evolución de esta tecnología otorgará a los usuarios el control sobre sus datos, siendo los propios pacientes quienes gestionen y controlen el acceso y uso que se hace de su historial clínico.

Por otra parte, la aplicación de Blockchain en la sanidad generará una nueva fuente de información hasta ahora nunca conocida. Conocer parte del historial de cada paciente nos permitirá detectar patrones que se manifiestan antes de ciertas enfermedades o averiguar cuáles son los tratamientos más efectivos. Gracias a ello, podremos mejorar nuestros sistemas de prevención y cura, llegando a salvar vidas humanas.

3. Control de medicamentos

La tecnología de la cadena de bloques también se podría aplicar para controlar y gestionar de manera más eficiente y automática el consumo y la producción de fármacos. Incluir en el sistema a farmacias permitiría a los médicos controlar el consumo de sus pacientes. Además, se podría automatizar la elaboración y abastecimiento de medicamentos en base a lo recetado en los centros médicos.

Whitepaper
Transformación Digital en el Ámbito Sanitario
Descarga gratuita
Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> link  [in template "20099#20135#190900" at line 41, column 47]

----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if !currentUrl?contains(link + "/") ...  [in template "20099#20135#190900" at line 41, column 21]
----
1<#if entries?has_content> 
2 
3    <#assign journalArticleExtLocalService = serviceLocator.findService("com.izertis.internet.journal.ext.service.service.JournalArticleExtLocalService")> 
4    <#assign currentUrl = themeDisplay.getURLCurrent() + "/" /> 
5    <!-- Configuración hardcoded --> 
6    <#assign delta = 4> 
7 
8    <div class="row related-content"> 
9        <div class="col-xxl-11 px-5 pl-xxl-100px pl-xl-5 py-5"> 
10            <div class="title"><@liferay.language key="related-contents-title" /></div> 
11            <div class="row"> 
12            <#assign cont = 0> 
13            <#list entries as curEntry> 
14                 
15                <#assign renderer = curEntry.getAssetRenderer()> 
16                <#assign className = renderer.getClassName()> 
17 
18                <#if className == "com.liferay.journal.model.JournalArticle"> 
19                    <#assign journalArticle = renderer.getArticle()> 
20                    <#assign document = saxReaderUtil.read(journalArticle.getContent())> 
21                    <#assign rootElement = document.getRootElement()> 
22                    <#assign defaultLanguageId = parseXml ("@default-locale", rootElement)> 
23                    <#attempt> 
24                        <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='miniatureimage']")> 
25                        <#assign img = xPathSelector.selectSingleNode(rootElement).getStringValue()> 
26                        <#if isJson(img)> 
27                            <#assign imgJson = jsonFactoryUtil.createJSONObject(img)> 
28                            <#assign imgUrl = "/documents/" + imgJson.groupId + "/" + imgJson.uuid > 
29                        <#else> 
30                            <#assign imgUrl = "/o/portal-izertis-theme/images/publications/" + journalArticle.getArticleId()[journalArticle.getArticleId()?length-1] + ".jpg"> 
31                        </#if> 
32                    <#recover> 
33                        <#assign imgUrl = "/o/portal-izertis-theme/images/publications/" + journalArticle.getArticleId()[journalArticle.getArticleId()?length-1] + ".jpg"> 
34                    </#attempt> 
35 
36                    <#assign title = getField("title", locale, defaultLanguageId, rootElement)!> 
37                    <#attempt> 
38                        <#assign link = "/-/" + journalArticleExtLocalService.getFriendlyUrl(journalArticle, themeDisplay.getLocale()) /> 
39                    <#recover> 
40                    </#attempt> 
41                    <#if !currentUrl?contains(link + "/") && (cont < delta)> 
42                        <#if title != ""> 
43                            <div class="col-sm-6 col-lg-3 pr-5 pb-5 pb-lg-0"> 
44                                <div class="img-cont"> 
45                                    <img alt="" src="${imgUrl}" /> 
46                                </div> 
47                                <#if title != ""> 
48                                    <div class="info"><a href="${link}">${title}</a></div> 
49                                </#if> 
50                            </div> 
51                            <#assign cont = cont + 1 /> 
52                        </#if> 
53                    </#if> 
54                </#if> 
55            </#list> 
56            </div> 
57         
58        </div> 
59    </div> 
60</#if> 
61 
62<#function getField field languageId defaultLanguageId xml> 
63    <#local defaultSelector = "//dynamic-content[@language-id='" + defaultLanguageId + "' and ancestor-or-self::*[@name='" + field + "']]"> 
64    <#local localeSelector = "//dynamic-content[@language-id='" + languageId + "' and parent::*[@name='" + field + "']]"> 
65 
66    <#local selector = saxReaderUtil.createXPath(localeSelector)> 
67    <#local value = selector.selectSingleNode(xml)!> 
68 
69    <#if value?has_content> 
70        <#return value.getText()> 
71    </#if> 
72 
73    <#local selector = saxReaderUtil.createXPath(defaultSelector)> 
74    <#local value = selector.selectSingleNode(xml)!> 
75 
76    <#if value?has_content> 
77        <#return value.getText()> 
78    </#if> 
79 
80    <#return ""> 
81</#function> 
82 
83<#function parseXml xpath xml> 
84    <#local selector = saxReaderUtil.createXPath(xpath)> 
85    <#local result = selector.selectSingleNode(xml)!> 
86 
87    <#if result?has_content> 
88        <#return result.getStringValue()> 
89    </#if> 
90 
91    <#return ""> 
92</#function> 
93 
94<#function isJson json> 
95    <#local value = json?trim> 
96    <#return value?has_content && value?starts_with("{") && value?ends_with("}")> 
97</#function>