Tietoa Pirkanmaan hyvinvointialueesta
Pirkanmaan hyvinvointialue aloitti toimintansa 1.1.2023. Hyvinvointialue on kunnista ja valtiosta erillinen julkisoikeudellinen yhteisö, jolla on alueellaan itsehallinto. Hyvinvointialue vastaa sosiaali- ja terveydenhuollosta sekä pelastustoimesta.
Hyvinvointialueen ylin päätösvalta on aluevaltuustolla, jonka jäsenet ja varajäsenet valitaan aluevaaleilla koko maakunnan alueelta.
Pirkanmaan hyvinvointialue on asukasmäärältään Suomen suurin hyvinvointialue. Pirkanmaan hyvinvointialueella asuu yhteensä yli puoli miljoonaa asukasta.
The following has evaluated to null or missing:
==> DLAppLocalServiceHelper [in template "43104#43145#2794207" at line 191, column 44]
----
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: file = DLAppLocalServiceHelper.getFil... [in template "43104#43145#2794207" at line 191, column 37]
----
1<#-- TRANSLATIONS -->
2<#assign i18n = {
3 "fi": {
4 "kb":"kt",
5 "mb": "mt",
6 "attachments": "Liitteet",
7 "show_more": "Näytä lisää sisältöjä",
8 "open_all": "Avaa kaikki sisällöt"
9 },
10 "en": {
11 "kb":"kb",
12 "mb":"mb",
13 "attachments": "Attachments",
14 "show_more" : "Show more content",
15 "open_all": "Open all accordions"
16 }
17} />
18
19<#function Translate word>
20 <#return i18n[locale.language][word] />
21</#function>
22
23
24<#-- MACROs -->
25<#function si num>
26 <#assign order = num?round?c?length />
27 <#assign thousands = ((order - 1) / 3)?floor />
28 <#if (thousands < 0)><#assign thousands = 0 /></#if>
29 <#assign siMap = [ {"factor": 1, "unit": ""}, {"factor": 1000, "unit": "${Translate('kb')}"}, {"factor": 1000000, "unit": "${Translate('mb')}"}, {"factor": 1000000000, "unit":"G"}, {"factor": 1000000000000, "unit": "T"} ]/>
30 <#assign siStr = (num / (siMap[thousands].factor))?string("0.#") + siMap[thousands].unit />
31 <#return siStr />
32</#function>
33
34<#-- VARIABLES -->
35<#assign
36 pirhaLiftStyle = "blue"
37 pirhaLinkIconColor = "orange"
38 pirhaHeadlineSize = "2"
39 pirhaSectionHeadlineSize = pirhaHeadlineSize?number + 1
40 pirhaLiftTitleIcon = "none"
41 pirhaLinkStyle = "dark"
42 pirhaLinkShowIcon = ""
43 pirhaLinkIconType="arrow-right"
44 pirhaLiftTitleIcon = ""
45 pirhaIconColor = "var(--pirha-icon-color-red)"
46 pirhaLinkUrl = ""
47 pirhaLinkType = "url"
48 pirhaUseImage = false
49 pirhaImagePosition = "left"
50 pirhaButtonCss = "pirha-button-link"
51 pirhaAttachmentTitle = ""
52 pirhaAttachmentDescription = ""
53 attachments = []
54/>
55
56<#-- SET LIFT BACKGROUND STYLE -->
57<#if liftStyle?? && liftStyle.getData()?has_content>
58 <#assign pirhaLiftStyle = liftStyle.getData() />
59</#if>
60
61<#-- SET LINK BUTTON STYLE -->
62<#if pirhaLiftStyle != "transparent">
63 <#assign pirhaButtonCss += " button-inverted" />
64</#if>
65
66<#-- SET TITLE SIZE -->
67<#if liftTitleSize?? && liftTitleSize.data?has_content>
68 <#if liftTitleSize.data?starts_with("h")>
69 <#assign
70 pirhaHeadlineSize = liftTitleSize.data?substring(1)
71 pirhaSectionHeadlineSize = pirhaHeadlineSize?number + 1
72 />
73 <#else>
74 <#assign
75 pirhaHeadlineSize = liftTitleSize.data
76 pirhaSectionHeadlineSize = pirhaHeadlineSize?number + 1
77 />
78 </#if>
79</#if>
80
81
82<#if liftTitleIcon?? && liftTitleIcon.data?has_content && (liftTitleIcon.getData() != "none" ||liftTitleIcon.getData() != "")>
83 <#assign pirhaLiftTitleIcon = liftTitleIcon.getData()?lower_case />
84</#if>
85
86<#if linkStyle?? && linkStyle.data?has_content>
87 <#assign pirhaLinkStyle = linkStyle.getData() />
88
89</#if>
90
91<#if liftImage?? && liftImage.getData()?has_content>
92 <#assign pirhaUseImage = true />
93</#if>
94
95<#if liftImagePosition?? && liftImagePosition.data?has_content>
96 <#assign pirhaImagePosition = liftImagePosition.data />
97</#if>
98
99
100
101<#-- LOGIC -->
102<div class="pirha-lift pirha-lift--${pirhaLiftStyle} <#if pirhaUseImage>pirha-lift--with-image pirha-lift__image--${pirhaImagePosition}</#if>">
103 <#-- IMAGE -->
104 <#if pirhaUseImage>
105 <figure>
106 <img src="${liftImage.getData()}" alt="${liftImage.getAttribute('alt')}" />
107 </figure>
108 </#if>
109 <#if sections?? && sections.getSiblings()?has_content>
110
111 <div class="pirha-lift__body">
112 <#-- HEADLINE -->
113 <#if liftTitle?? && liftTitle.data?has_content>
114 <h${pirhaHeadlineSize} class="pirha-lift__heading">
115 <#-- SHOW ICON -->
116 <#if pirhaLiftTitleIcon != 'none' && pirhaLiftTitleIcon != ''>
117 <span role="presentation" class="pirha-icon pirha-icon--${pirhaLiftTitleIcon}"></span>
118 </#if>
119 <#-- HEADLINE CONTENT -->
120 ${liftTitle.data}
121 </h${pirhaHeadlineSize}>
122 </#if>
123 <#list sections.getSiblings() as section>
124 <div class="pirha-lift__article">
125 <#-- SET SECTION HEADLINE SIZE -->
126 <#assign pirhaSectionHeadlineSize = pirhaHeadlineSize?number + 1 />
127 <#if section.liftSectionTitleSize?? && section.liftSectionTitleSize.getData()?has_content>
128 <#assign pirhaSectionHeadlineSize = section.liftSectionTitleSize.getData() />
129 </#if>
130 <#-- CONTENT -->
131 <#if section.liftSectionTitle?? && section.liftSectionTitle.data?has_content>
132 <#-- <h${pirhaSectionHeadlineSize} class="pirha-lift__heading--article"> -->
133 <h${pirhaSectionHeadlineSize} class="pirha-lift__heading">
134 <#if section.liftSectionTitleIcon?? && section.liftSectionTitleIcon.getData()?has_content>
135 <span role="presentation" class="pirha-icon pirha-icon--${section.liftSectionTitleIcon.getData()}"></span>
136 </#if>
137 ${section.liftSectionTitle.data}
138 </h${pirhaSectionHeadlineSize}>
139 </#if>
140 <#if section.liftContent?? && section.liftContent.data?has_content>
141 <div class="pirha-lift__content">
142 ${section.liftContent.data}
143 </div>
144 </#if>
145 <#-- LINKS -->
146 <#if section.links?? && section.links.getSiblings()?has_content>
147 <#assign linkWrapperCSS = "" />
148
149 <#list section.links.getSiblings() as link>
150 <#if link.linkText.data?has_content>
151 <#assign linkWrapperCSS = "pirha-lift__links" />
152 <#break>
153 </#if>
154 </#list>
155 <div class="${linkWrapperCSS}">
156 <#list section.links.getSiblings() as link>
157
158 <#-- Internal link -->
159 <#if link.linkUrl?? && link.linkUrl.getFriendlyUrl()?has_content>
160 <#assign
161 pirhaLinkUrl = link.linkUrl.getFriendlyUrl()
162 pirhaLinkIconType = "arrow-right"
163 />
164 </#if>
165
166 <#-- External link -->
167 <#if link.linkUrlExternal?? && link.linkUrlExternal.getData()?has_content>
168 <#assign
169 pirhaLinkUrl = link.linkUrlExternal.getData()
170 pirhaLinkIconType = "link-external"
171 />
172 </#if>
173
174 <#-- Attchment -->
175
176 <#if link.linkFile?? && link.linkFile.getData()?has_content>
177 <#assign
178 pirhaLinkUrl = link.linkFile.getData()
179 pirhaLinkIconType = "attachment"
180 />
181 <#-- Attachment description -->
182 <#if link.linkFileDescription?? && link.linkFileDescription.getData()?has_content>
183 <#assign pirhaAttachmentDescription = link.linkFileDescription.getData() />
184 </#if>
185 <#-- Get attachment details -->
186 <#assign
187 link_url_parts = link.linkFile.getData()?split("/")
188 file_uuid = link_url_parts[5]?keep_before("?")
189 file_group_id = link_url_parts[2]?number
190 file = DLAppLocalServiceHelper.getFileEntryByUuidAndGroupId(file_uuid?string,file_group_id?long)
191 />
192
193
194 <#-- SET TITLE -->
195 <#if link.linkText.getData()?has_content>
196 <#assign pirhaAttachmentTitle = link.linkText.getData() />
197 <#else>
198 <#assign pirhaAttachmentTitle = file.getTitle()?keep_before_last(".") />
199 </#if>
200
201 <#-- ADD FILE TO ATTACHEMNTS ARRAY -->
202 <#assign attachments = attachments + [ {
203 "fileName": pirhaAttachmentTitle,
204 "fileURL": pirhaLinkUrl,
205 "fileExt": file.getExtension(),
206 "fileSize": file.getSize(),
207 "fileDescription": pirhaAttachmentDescription
208 }] />
209
210 </#if>
211
212 <#-- SHOW ICON -->
213 <#if pirhaLinkUrl?has_content && link.linkText.getData()?has_content>
214 <#if pirhaLinkIconType != "attachment">
215 <a class="${pirhaButtonCss}" href="${pirhaLinkUrl}">
216 <#if link.linkIconColor?? && link.linkIconColor.data?has_content>
217 <#assign pirhaLinkIconColor = "var(--pirha-icon-color-${link.linkIconColor.data})" />
218 </#if>
219 <span aria-hidden="true" class="pirha-icon pirha-icon--${pirhaLinkIconType}"></span>
220 <span>${link.linkText.data}</span>
221 </a>
222 <#else>
223 <div class="pirha-lift__attachment">
224 <span aria-hidden="true" class="pirha-icon pirha-icon--${pirhaLinkIconType}"></span>
225 <div>
226 <a href="${pirhaLinkUrl}" class="">
227 ${pirhaAttachmentTitle} (<span>${file.getExtension()}, ${si(file.getSize())}</span>)
228 </a>
229 <#if pirhaAttachmentDescription?has_content>
230 <p class="pirha-link__description">
231 ${pirhaAttachmentDescription}
232 </p>
233 </#if>
234 </div>
235 </div>
236 </#if>
237 </#if>
238 </#list>
239 </div>
240 </#if>
241 </div>
242 </#list>
243 </div>
244 </#if>
245</div>
Hyvinvointialue järjestää sote-palvelut ja pelastus- ja ensihoitopalvelut
Hyvinvointialue vastaa julkisista sosiaali- ja terveyspalveluista sekä pelastuspalveluista. Hyvinvointialue huolehtii muun muassa näistä tehtävistä:
- Perusterveydenhuolto
- Erikoissairaanhoito
- Ensihoito
- Palo- ja pelastustoiminta
- Mielenterveys- ja päihdepalvelut
- Sosiaalityö
- Vammaispalvelut
- Ikääntyneiden palvelut
Pirkanmaan hyvinvointialueella on yhteensä noin 20 000 työntekijää, joten hyvinvointialue on Pirkanmaan suurin työnantaja. Kuntien sosiaali- ja terveystoimen ja pelastustoimen sekä Pirkanmaan sairaanhoitopiirin työntekijät siirtyivät liikkeenluovutuksella hyvinvointialueen työntekijöiksi 1.1.2023 alkaen.
1.1.2023
1.1.2023 hyvinvointialue aloitti toimintansa
23
23 kuntaa, asukasmäärältään suurin hyvinvointialue
20 000
20 000 työntekijää
The following has evaluated to null or missing:
==> DLAppLocalServiceHelper [in template "43104#43145#2794207" at line 191, column 44]
----
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: file = DLAppLocalServiceHelper.getFil... [in template "43104#43145#2794207" at line 191, column 37]
----
1<#-- TRANSLATIONS -->
2<#assign i18n = {
3 "fi": {
4 "kb":"kt",
5 "mb": "mt",
6 "attachments": "Liitteet",
7 "show_more": "Näytä lisää sisältöjä",
8 "open_all": "Avaa kaikki sisällöt"
9 },
10 "en": {
11 "kb":"kb",
12 "mb":"mb",
13 "attachments": "Attachments",
14 "show_more" : "Show more content",
15 "open_all": "Open all accordions"
16 }
17} />
18
19<#function Translate word>
20 <#return i18n[locale.language][word] />
21</#function>
22
23
24<#-- MACROs -->
25<#function si num>
26 <#assign order = num?round?c?length />
27 <#assign thousands = ((order - 1) / 3)?floor />
28 <#if (thousands < 0)><#assign thousands = 0 /></#if>
29 <#assign siMap = [ {"factor": 1, "unit": ""}, {"factor": 1000, "unit": "${Translate('kb')}"}, {"factor": 1000000, "unit": "${Translate('mb')}"}, {"factor": 1000000000, "unit":"G"}, {"factor": 1000000000000, "unit": "T"} ]/>
30 <#assign siStr = (num / (siMap[thousands].factor))?string("0.#") + siMap[thousands].unit />
31 <#return siStr />
32</#function>
33
34<#-- VARIABLES -->
35<#assign
36 pirhaLiftStyle = "blue"
37 pirhaLinkIconColor = "orange"
38 pirhaHeadlineSize = "2"
39 pirhaSectionHeadlineSize = pirhaHeadlineSize?number + 1
40 pirhaLiftTitleIcon = "none"
41 pirhaLinkStyle = "dark"
42 pirhaLinkShowIcon = ""
43 pirhaLinkIconType="arrow-right"
44 pirhaLiftTitleIcon = ""
45 pirhaIconColor = "var(--pirha-icon-color-red)"
46 pirhaLinkUrl = ""
47 pirhaLinkType = "url"
48 pirhaUseImage = false
49 pirhaImagePosition = "left"
50 pirhaButtonCss = "pirha-button-link"
51 pirhaAttachmentTitle = ""
52 pirhaAttachmentDescription = ""
53 attachments = []
54/>
55
56<#-- SET LIFT BACKGROUND STYLE -->
57<#if liftStyle?? && liftStyle.getData()?has_content>
58 <#assign pirhaLiftStyle = liftStyle.getData() />
59</#if>
60
61<#-- SET LINK BUTTON STYLE -->
62<#if pirhaLiftStyle != "transparent">
63 <#assign pirhaButtonCss += " button-inverted" />
64</#if>
65
66<#-- SET TITLE SIZE -->
67<#if liftTitleSize?? && liftTitleSize.data?has_content>
68 <#if liftTitleSize.data?starts_with("h")>
69 <#assign
70 pirhaHeadlineSize = liftTitleSize.data?substring(1)
71 pirhaSectionHeadlineSize = pirhaHeadlineSize?number + 1
72 />
73 <#else>
74 <#assign
75 pirhaHeadlineSize = liftTitleSize.data
76 pirhaSectionHeadlineSize = pirhaHeadlineSize?number + 1
77 />
78 </#if>
79</#if>
80
81
82<#if liftTitleIcon?? && liftTitleIcon.data?has_content && (liftTitleIcon.getData() != "none" ||liftTitleIcon.getData() != "")>
83 <#assign pirhaLiftTitleIcon = liftTitleIcon.getData()?lower_case />
84</#if>
85
86<#if linkStyle?? && linkStyle.data?has_content>
87 <#assign pirhaLinkStyle = linkStyle.getData() />
88
89</#if>
90
91<#if liftImage?? && liftImage.getData()?has_content>
92 <#assign pirhaUseImage = true />
93</#if>
94
95<#if liftImagePosition?? && liftImagePosition.data?has_content>
96 <#assign pirhaImagePosition = liftImagePosition.data />
97</#if>
98
99
100
101<#-- LOGIC -->
102<div class="pirha-lift pirha-lift--${pirhaLiftStyle} <#if pirhaUseImage>pirha-lift--with-image pirha-lift__image--${pirhaImagePosition}</#if>">
103 <#-- IMAGE -->
104 <#if pirhaUseImage>
105 <figure>
106 <img src="${liftImage.getData()}" alt="${liftImage.getAttribute('alt')}" />
107 </figure>
108 </#if>
109 <#if sections?? && sections.getSiblings()?has_content>
110
111 <div class="pirha-lift__body">
112 <#-- HEADLINE -->
113 <#if liftTitle?? && liftTitle.data?has_content>
114 <h${pirhaHeadlineSize} class="pirha-lift__heading">
115 <#-- SHOW ICON -->
116 <#if pirhaLiftTitleIcon != 'none' && pirhaLiftTitleIcon != ''>
117 <span role="presentation" class="pirha-icon pirha-icon--${pirhaLiftTitleIcon}"></span>
118 </#if>
119 <#-- HEADLINE CONTENT -->
120 ${liftTitle.data}
121 </h${pirhaHeadlineSize}>
122 </#if>
123 <#list sections.getSiblings() as section>
124 <div class="pirha-lift__article">
125 <#-- SET SECTION HEADLINE SIZE -->
126 <#assign pirhaSectionHeadlineSize = pirhaHeadlineSize?number + 1 />
127 <#if section.liftSectionTitleSize?? && section.liftSectionTitleSize.getData()?has_content>
128 <#assign pirhaSectionHeadlineSize = section.liftSectionTitleSize.getData() />
129 </#if>
130 <#-- CONTENT -->
131 <#if section.liftSectionTitle?? && section.liftSectionTitle.data?has_content>
132 <#-- <h${pirhaSectionHeadlineSize} class="pirha-lift__heading--article"> -->
133 <h${pirhaSectionHeadlineSize} class="pirha-lift__heading">
134 <#if section.liftSectionTitleIcon?? && section.liftSectionTitleIcon.getData()?has_content>
135 <span role="presentation" class="pirha-icon pirha-icon--${section.liftSectionTitleIcon.getData()}"></span>
136 </#if>
137 ${section.liftSectionTitle.data}
138 </h${pirhaSectionHeadlineSize}>
139 </#if>
140 <#if section.liftContent?? && section.liftContent.data?has_content>
141 <div class="pirha-lift__content">
142 ${section.liftContent.data}
143 </div>
144 </#if>
145 <#-- LINKS -->
146 <#if section.links?? && section.links.getSiblings()?has_content>
147 <#assign linkWrapperCSS = "" />
148
149 <#list section.links.getSiblings() as link>
150 <#if link.linkText.data?has_content>
151 <#assign linkWrapperCSS = "pirha-lift__links" />
152 <#break>
153 </#if>
154 </#list>
155 <div class="${linkWrapperCSS}">
156 <#list section.links.getSiblings() as link>
157
158 <#-- Internal link -->
159 <#if link.linkUrl?? && link.linkUrl.getFriendlyUrl()?has_content>
160 <#assign
161 pirhaLinkUrl = link.linkUrl.getFriendlyUrl()
162 pirhaLinkIconType = "arrow-right"
163 />
164 </#if>
165
166 <#-- External link -->
167 <#if link.linkUrlExternal?? && link.linkUrlExternal.getData()?has_content>
168 <#assign
169 pirhaLinkUrl = link.linkUrlExternal.getData()
170 pirhaLinkIconType = "link-external"
171 />
172 </#if>
173
174 <#-- Attchment -->
175
176 <#if link.linkFile?? && link.linkFile.getData()?has_content>
177 <#assign
178 pirhaLinkUrl = link.linkFile.getData()
179 pirhaLinkIconType = "attachment"
180 />
181 <#-- Attachment description -->
182 <#if link.linkFileDescription?? && link.linkFileDescription.getData()?has_content>
183 <#assign pirhaAttachmentDescription = link.linkFileDescription.getData() />
184 </#if>
185 <#-- Get attachment details -->
186 <#assign
187 link_url_parts = link.linkFile.getData()?split("/")
188 file_uuid = link_url_parts[5]?keep_before("?")
189 file_group_id = link_url_parts[2]?number
190 file = DLAppLocalServiceHelper.getFileEntryByUuidAndGroupId(file_uuid?string,file_group_id?long)
191 />
192
193
194 <#-- SET TITLE -->
195 <#if link.linkText.getData()?has_content>
196 <#assign pirhaAttachmentTitle = link.linkText.getData() />
197 <#else>
198 <#assign pirhaAttachmentTitle = file.getTitle()?keep_before_last(".") />
199 </#if>
200
201 <#-- ADD FILE TO ATTACHEMNTS ARRAY -->
202 <#assign attachments = attachments + [ {
203 "fileName": pirhaAttachmentTitle,
204 "fileURL": pirhaLinkUrl,
205 "fileExt": file.getExtension(),
206 "fileSize": file.getSize(),
207 "fileDescription": pirhaAttachmentDescription
208 }] />
209
210 </#if>
211
212 <#-- SHOW ICON -->
213 <#if pirhaLinkUrl?has_content && link.linkText.getData()?has_content>
214 <#if pirhaLinkIconType != "attachment">
215 <a class="${pirhaButtonCss}" href="${pirhaLinkUrl}">
216 <#if link.linkIconColor?? && link.linkIconColor.data?has_content>
217 <#assign pirhaLinkIconColor = "var(--pirha-icon-color-${link.linkIconColor.data})" />
218 </#if>
219 <span aria-hidden="true" class="pirha-icon pirha-icon--${pirhaLinkIconType}"></span>
220 <span>${link.linkText.data}</span>
221 </a>
222 <#else>
223 <div class="pirha-lift__attachment">
224 <span aria-hidden="true" class="pirha-icon pirha-icon--${pirhaLinkIconType}"></span>
225 <div>
226 <a href="${pirhaLinkUrl}" class="">
227 ${pirhaAttachmentTitle} (<span>${file.getExtension()}, ${si(file.getSize())}</span>)
228 </a>
229 <#if pirhaAttachmentDescription?has_content>
230 <p class="pirha-link__description">
231 ${pirhaAttachmentDescription}
232 </p>
233 </#if>
234 </div>
235 </div>
236 </#if>
237 </#if>
238 </#list>
239 </div>
240 </#if>
241 </div>
242 </#list>
243 </div>
244 </#if>
245</div>
Päivitetty 26.11.2025