Notícies de l’Hospital de Sant Pau
Sant Pau, Premi CSC Impulsa 2024 per un projecte de Cardiologia amb IA
Els Premis CSC Impulsa 2024 han reconegut l’Hospital de Sant Pau en la categoria “Projectes innovadors d’intel·ligència artificial (IA) en l’àmbit de la salut” amb la iniciativa “Detecció de disfunció ventricular esquerra mitjançant anàlisi amb intel·ligència artificial de senyals de so i elèctrics obtinguts amb estetoscopi digital”, desenvolupada pel Dr. Matías Enrique Calandrelli i el Dr. Martín Descalzo, membres del grup d’investigació d’IA aplicada a la imatge cardíaca de la Unitat d’Imatge Cardíaca i Servei de Cardiologia de Sant Pau.
Aquest guardó, que reconeix la innovació en salut i social, ha estat atorgat després d’un procés de selecció rigorós, on es van presentar 56 projectes dins d’aquesta categoria, amb el projecte AI-HEART com a guanyador destacat. Sant Pau ha estat premiat en les dues edicions celebrades d’aquests guardons, que tenen com a objectiu detectar, reconèixer i impulsar projectes innovadors de les entitats socials i sanitàries que presten serveis públics a Catalunya.
Promoguts pel Consorci de Salut i Social de Catalunya (CSC), els guardons han reconegut entitats del sistema públic de salut i d’atenció social de Catalunya en 8 categories diferents en una gala al Museu de la Ciència CosmoCaixa, que ha comptat amb l’assistència de més de 300 professionals del sector. Cadascuna de les entitats premiades ha rebut un ajut de 20.000 euros o acompanyament per part de l’Oficina Tècnica de Projectes d’Innovació del CSC per al desenvolupament del projecte presentat, gràcies al suport de la Fundació Tic Salut Social i la col·laboració de Bayer, Johnson&Johnson, NovoNordisk i GSK, qui han patrocinat les diferents categories.
En aquesta segona edició, els Premis CSC Impulsa han rebut 157 candidatures, de les quals han sortit 26 projectes finalistes i, finalment, 8 guanyadors, un per cada categoria, seleccionats pels assistents a la gala, un comitè avaluador de cada categoria i un jurat format per una representació del comitè avaluador.
En la seva primera edició, l’octubre de 2022, l’Hospital de Sant Pau també va ser guardonat pel projecte “TRANSFORM: Transformant l’endometriosi”, del Servei de Ginecologia i Obstetrícia.
The following has evaluated to null or missing: ==> themeDisplay.getRequest().getParameter("_assetEntryId") [in template "20155#20195#3894213" at line 7, column 32] ---- Tip: If the failing expression is known to 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: #assign assetEntryIdFromUrl = themeDi... [in template "20155#20195#3894213" at line 7, column 1] ----
1<#assign groupService = serviceLocator.findService('com.liferay.portal.kernel.service.GroupLocalService') />
2<#assign tagsService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService") />
3<#assign entryService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryService") />
4<#assign journalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
5<#assign saxReader = serviceLocator.findService("com.liferay.portal.kernel.xml.SAXReader") />
6
7<#assign assetEntryIdFromUrl = themeDisplay.getRequest().getParameter("_assetEntryId") />
8<#assign assetEntryIdFromUrlNumber = assetEntryIdFromUrl?number>
9<#if entries?has_content>
10
11<#if themeDisplay.getURLCurrent()?contains("/comunic-actualitat/-/asset_publisher/")>
12
13<div class="homeActualitat homeActualitatAltres">
14 <div>
15 <div>
16 <h3>
17 ${portletDisplay.getTitle()}
18 </h3>
19 </div>
20
21 <ul class="homeActualitatContinguts clearfix">
22 <#assign count = 0>
23 <#if entries?has_content>
24 <#list entries as curEntry>
25 <#attempt>
26 <#assign curEntryId = curEntry.getEntryId() />
27 <#assign curEntryIdNumber = curEntryId?number>
28 <#if curEntryIdNumber != assetEntryIdFromUrlNumber>
29 <#if count < 4> <!-- Limitar a 4 resultados -->
30 <#assign count = count + 1>
31 <#assign journalArticle = journalService.getLatestArticle(curEntry.getClassPK()) />
32
33 <#assign contenidoArticulo = journalArticle.getContent() />
34
35 <#assign document = saxReader.read(contenidoArticulo) />
36
37 <#assign rootElement =document.getRootElement()>
38
39 <#if locale?contains("en")>
40 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titol']/dynamic-content[@language-id='en_GB']") >
41 <#if xPathSelector.selectSingleNode(rootElement)?has_content>
42 <#assign titol = xPathSelector.selectSingleNode(rootElement).getStringValue() >
43 <#else>
44 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titol']/dynamic-content[@language-id='ca_ES']") >
45 <#assign titol = xPathSelector.selectSingleNode(rootElement).getStringValue()>
46 </#if>
47 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Resum']/dynamic-content[@language-id='en_GB']") >
48 <#if xPathSelector.selectSingleNode(rootElement)?has_content>
49 <#assign resum = xPathSelector.selectSingleNode(rootElement).getStringValue() >
50 <#else>
51 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Resum']/dynamic-content[@language-id='ca_ES']") >
52 <#assign resum = xPathSelector.selectSingleNode(rootElement).getStringValue()>
53 </#if>
54 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Descripcio']/dynamic-content[@language-id='en_GB']") >
55 <#if xPathSelector.selectSingleNode(rootElement)?has_content>
56 <#assign texto = xPathSelector.selectSingleNode(rootElement).getStringValue() >
57 <#else>
58 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Descripcio']/dynamic-content[@language-id='ca_ES']") >
59 <#assign texto = xPathSelector.selectSingleNode(rootElement).getStringValue()>
60 </#if>
61 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Data']/dynamic-content[@language-id='en_GB']") >
62 <#if xPathSelector.selectSingleNode(rootElement)?has_content>
63 <#assign fechaAlta = xPathSelector.selectSingleNode(rootElement).getStringValue() >
64 <#else>
65 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Data']/dynamic-content[@language-id='ca_ES']") >
66 <#assign fechaAlta = xPathSelector.selectSingleNode(rootElement).getStringValue()>
67 </#if>
68 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Imatge']/dynamic-content[@language-id='ca_ES']") >
69 <#if xPathSelector.selectSingleNode(rootElement)?has_content>
70 <#assign imagentmp = xPathSelector.selectSingleNode(rootElement).getStringValue() >
71 <#assign jsonObject = jsonFactoryUtil.createJSONObject(imagentmp)>
72 <#assign uuid = jsonObject.getString("uuid")>
73 <#assign groupId = jsonObject.getLong("groupId")>
74
75 <#assign fileEntryId = jsonObject.getLong("fileEntryId")>
76 <#if fileEntryId != 0>
77 <#assign fileEntry = staticUtil["com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil"].getPortletFileEntry(fileEntryId) />
78 <#assign imagen = staticUtil["com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil"].getDownloadPortletFileEntryURL(themeDisplay,fileEntry,"") />
79 <#else>
80 <#assign imagen = "">
81 </#if>
82 <#else>
83 <#assign imagen = "">
84 </#if>
85
86 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='OrdreHome']/dynamic-content[@language-id='en_GB']") >
87 <#if xPathSelector.selectSingleNode(rootElement)?has_content>
88 <#assign OrdreHome = xPathSelector.selectSingleNode(rootElement).getStringValue() >
89 <#else>
90 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='OrdreHome']/dynamic-content[@language-id='ca_ES']") >
91 <#assign OrdreHome = xPathSelector.selectSingleNode(rootElement).getStringValue()>
92 </#if>
93 <#elseif locale?contains("es")>
94 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titol']/dynamic-content[@language-id='es_ES']") >
95 <#if xPathSelector.selectSingleNode(rootElement)?has_content>
96 <#assign titol = xPathSelector.selectSingleNode(rootElement).getStringValue() >
97 <#else>
98 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titol']/dynamic-content[@language-id='ca_ES']") >
99 <#assign titol = xPathSelector.selectSingleNode(rootElement).getStringValue()>
100 </#if>
101 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Resum']/dynamic-content[@language-id='es_ES']") >
102 <#if xPathSelector.selectSingleNode(rootElement)?has_content>
103 <#assign resum = xPathSelector.selectSingleNode(rootElement).getStringValue() >
104 <#else>
105 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Resum']/dynamic-content[@language-id='ca_ES']") >
106 <#assign resum = xPathSelector.selectSingleNode(rootElement).getStringValue()>
107 </#if>
108 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Descripcio']/dynamic-content[@language-id='es_ES']") >
109 <#if xPathSelector.selectSingleNode(rootElement)?has_content>
110 <#assign texto = xPathSelector.selectSingleNode(rootElement).getStringValue() >
111 <#else>
112 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Descripcio']/dynamic-content[@language-id='ca_ES']") >
113 <#assign texto = xPathSelector.selectSingleNode(rootElement).getStringValue()>
114 </#if>
115 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Data']/dynamic-content[@language-id='es_ES']") >
116 <#if xPathSelector.selectSingleNode(rootElement)?has_content>
117 <#assign fechaAlta = xPathSelector.selectSingleNode(rootElement).getStringValue() >
118 <#else>
119 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Data']/dynamic-content[@language-id='ca_ES']") >
120 <#assign fechaAlta = xPathSelector.selectSingleNode(rootElement).getStringValue()>
121 </#if>
122 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Imatge']/dynamic-content[@language-id='ca_ES']") >
123 <#if xPathSelector.selectSingleNode(rootElement)?has_content>
124 <#assign imagentmp = xPathSelector.selectSingleNode(rootElement).getStringValue() >
125 <#assign jsonObject = jsonFactoryUtil.createJSONObject(imagentmp)>
126 <#assign uuid = jsonObject.getString("uuid")>
127 <#assign groupId = jsonObject.getLong("groupId")>
128
129 <#assign fileEntryId = jsonObject.getLong("fileEntryId")>
130 <#if fileEntryId != 0>
131 <#assign fileEntry = staticUtil["com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil"].getPortletFileEntry(fileEntryId) />
132 <#assign imagen = staticUtil["com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil"].getDownloadPortletFileEntryURL(themeDisplay,fileEntry,"") />
133 <#else>
134 <#assign imagen = "">
135 </#if>
136 <#else>
137 <#assign imagen = "">
138 </#if>
139
140 <#else>
141 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titol']/dynamic-content[@language-id='ca_ES']") >
142 <#assign titol = xPathSelector.selectSingleNode(rootElement).getStringValue() >
143 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Resum']/dynamic-content[@language-id='ca_ES']") >
144 <#assign resum = xPathSelector.selectSingleNode(rootElement).getStringValue() >
145 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Descripcio']/dynamic-content[@language-id='ca_ES']") >
146 <#assign texto = xPathSelector.selectSingleNode(rootElement).getStringValue() >
147 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Data']/dynamic-content[@language-id='ca_ES']") >
148 <#assign fechaAlta = xPathSelector.selectSingleNode(rootElement).getStringValue() >
149 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Imatge']/dynamic-content[@language-id='ca_ES']") >
150 <#if xPathSelector.selectSingleNode(rootElement)?has_content>
151 <#assign imagentmp = xPathSelector.selectSingleNode(rootElement).getStringValue() >
152 <#assign jsonObject = jsonFactoryUtil.createJSONObject(imagentmp)>
153 <#assign uuid = jsonObject.getString("uuid")>
154 <#assign groupId = jsonObject.getLong("groupId")>
155
156 <#assign fileEntryId = jsonObject.getLong("fileEntryId")>
157 <#if fileEntryId != 0>
158 <#assign fileEntry = staticUtil["com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil"].getPortletFileEntry(fileEntryId) />
159 <#assign imagen = staticUtil["com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil"].getDownloadPortletFileEntryURL(themeDisplay,fileEntry,"") />
160 <#else>
161 <#assign imagen = "">
162 </#if>
163 <#else>
164 <#assign imagen = "">
165 </#if>
166
167 </#if>
168 <#assign url = "/web/public/comunic-actualitat/-/asset_publisher/0n2ILqhO4yy6/content/" + curEntry.getAssetRenderer().getUrlTitle()
169 + "?_assetEntryId=" + curEntry.getEntryId() />
170
171 <#if fechaAlta != "">
172 <#assign dia = fechaAlta[8..] >
173 <#assign mes = fechaAlta[5..6] >
174 <#assign ano = fechaAlta[0..3] >
175 </#if>
176
177 <li class="homeActualitatContingut ${curEntryId} ${assetEntryIdFromUrl}">
178 <a href="${url }" target="_self">
179 <#if imagen != "">
180 <div class="homeActualitatImatge">
181 <img src="${imagen}" title="${titol}" alt="${titol}">
182 </div>
183 </#if>
184 <div class="homeActualitatDescripcio">
185 <span class="data">${dia }/${mes }/${ano }</span>
186 <div class="homeActualitatTitol">${titol}</div>
187 <div class="homeActualitatVeureMes">
188 <#if locale?contains("en")>
189 Read news
190 <#elseif locale?contains("es")>
191 Leer noticia
192 <#else>
193 Llegir notícia
194 </#if>
195 </div>
196 </div>
197 </a>
198 </li>
199 </#if> <!-- Fin Limitar a 4 resultados -->
200 </#if>
201 <#recover>
202 <#assign journalArticle = journalService.getLatestArticle(curEntry.getClassPK()) />
203
204 <#assign contenidoArticulo = journalArticle.getContent() />
205
206 <#assign document = saxReader.read(contenidoArticulo) />
207
208 <#assign rootElement =document.getRootElement()>
209
210 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Titol']/dynamic-content[@language-id='ca_ES']") >
211 <#assign titol = xPathSelector.selectSingleNode(rootElement).getStringValue() >
212 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Resum']/dynamic-content[@language-id='ca_ES']") >
213 <#assign resum = xPathSelector.selectSingleNode(rootElement).getStringValue() >
214 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Descripcio']/dynamic-content[@language-id='ca_ES']") >
215 <#assign texto = xPathSelector.selectSingleNode(rootElement).getStringValue() >
216 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Data']/dynamic-content[@language-id='ca_ES']") >
217 <#assign fechaAlta = xPathSelector.selectSingleNode(rootElement).getStringValue() >
218 <#assign xPathSelector = saxReaderUtil.createXPath("dynamic-element[@name='Imatge']/dynamic-content[@language-id='ca_ES']") >
219 <#if xPathSelector.selectSingleNode(rootElement)?has_content>
220 <#assign imagentmp = xPathSelector.selectSingleNode(rootElement).getStringValue() >
221 <#assign jsonObject = jsonFactoryUtil.createJSONObject(imagentmp)>
222 <#assign uuid = jsonObject.getString("uuid")>
223 <#assign groupId = jsonObject.getLong("groupId")>
224
225 <#assign fileEntryId = jsonObject.getLong("fileEntryId")>
226 <#if fileEntryId != 0>
227 <#assign fileEntry = staticUtil["com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil"].getPortletFileEntry(fileEntryId) />
228 <#assign imagen = staticUtil["com.liferay.portal.kernel.portletfilerepository.PortletFileRepositoryUtil"].getDownloadPortletFileEntryURL(themeDisplay,fileEntry,"") />
229 <#else>
230 <#assign imagen = "">
231 </#if>
232 <#else>
233 <#assign imagen = "">
234 </#if>
235
236 <#assign url = "/web/public/comunic-actualitat/-/asset_publisher/0n2ILqhO4yy6/content/" + curEntry.getAssetRenderer().getUrlTitle()
237 + "?_assetEntryId=" + curEntry.getEntryId() />
238
239 <#if fechaAlta != "">
240 <#assign dia = fechaAlta[8..] >
241 <#assign mes = fechaAlta[5..6] >
242 <#assign ano = fechaAlta[0..3] >
243 </#if>
244
245 <li class="homeActualitatContingut">
246 <a href="${url }" target="_self">
247 <#if imagen != "">
248 <div class="homeActualitatImatge">
249 <img src="${imagen}" title="${titol}" alt="${titol}">
250 </div>
251 </#if>
252 <div class="homeActualitatDescripcio">
253 <span class="data">${dia }/${mes }/${ano }</span>
254 <div class="homeActualitatTitol">${titol}</div>
255 <div class="homeActualitatVeureMes">
256 <#if locale?contains("en")>
257 Read news
258 <#elseif locale?contains("es")>
259 Leer noticia
260 <#else>
261 Llegir notícia
262 </#if>
263 </div>
264 </div>
265 </a>
266 </li>
267
268
269 </#attempt>
270 </#list>
271 </#if>
272 </ul>
273
274 </div>
275</div>
276
277</#if>
278</#if>