http://fi.opasnet.org/fi-opwiki/api.php?action=feedcontributions&user=Sharp&feedformat=atomOpasnet Suomi - Käyttäjän muokkaukset [fi]2024-03-28T13:17:39ZKäyttäjän muokkauksetMediaWiki 1.29.0http://fi.opasnet.org/fi-opwiki/index.php?title=Helsingin_strategiset_energiatehokkuus-_ja_ilmastotavoitteet&diff=26983Helsingin strategiset energiatehokkuus- ja ilmastotavoitteet2014-10-10T12:03:22Z<p>Sharp: /* Vastaus */</p>
<hr />
<div>{{muuttuja|edistyminen=Raakile|edistymistaulu=Kyllä}} <br />
<br />
== Kysymys ==<br />
<br />
Minkälaiset tulisi olla Helsingin kaupungin strategiset tavoitteet rakennusten energiatehokkuuden, ilmastonmuutoksen hillinnän ja ilmastonmuutokseen sopeutumisen suhteen?<br />
<br />
'''Rajaus'''<br />
<br />
Tässä vaiheessa kysymyksen tarkastelu rajataan valikoidusta aineistosta (kts. [[Helsingin ilmastonmuutos -tiekartta]]) löytyviin tavoitteenmäärittelyihin.<br />
<br />
== Vastaus ==<br />
<br />
* ''Aineistoista etsitään rakennusten energiatehokkuuteen, ilmastonmuutoksen hillintään ja ilmastonmuutokseen sopeutumiseen liittyviä tavoitteenmäärittelyjä (kuvauksia siitä minkälaisia muutoksia halutaan tapahtuvan)<br />
* ''Löydetyt tavoitteet nimetään sivulle Helsingin kaupungin strategiset tavoitteet rakennusten energiatehokkuuden, ilmastonmuutoksen hillinnän ja ilmastonmuutokseen sopeutumisen suhteen kohtaan vastaus ryhmittely esim. tausta-aineistoittain ja/tai aiheittain (i) rakennusten energiatehokkuus, ii) ilmastonmuutoksen hillintä, iii) ilmastonmuutokseen sopeutuminen)<br />
* ''Kunkin tavoitteen kohdalle merkitään myös missä kohdassa se esiintyy tausta-aineistossa: alkuperäisaineiston nimi + sivu(t) & jaenumero(t)<br />
<br />
{| {{prettytable}}<br />
|+'''Strategiatason tavoitteenmäärittelyt<br />
! Aineisto !! Sivunumero !! Jaenumero !! Osa-alue !! Tavoite<br />
|---<br />
|Helsingin kaupungin ympäristöpolitiikka || 4 || 21 || Rakennusten energiatehokkuus || Helsinki on eturivin toimija energiatehokkuudessa, ilmastonmuutoksen hillinnässä ja siihen sopeutumisessa niin kansallisesti kuin kansainvälisesti.<br />
|---<br />
|Helsingin kaupungin ympäristöpolitiikka || 4 || 25 || Rakennusten energiatehokkuus || Energiatehokkuus on parantunut vähintään 20 % vuoteen 2020 (mittarina asukaskohtainen energiankulutus, vertailuvuosi 2005.<br />
|---<br />
| Helsingin kaupungin strategiaohjelma 2013-2016 || 23 || 347 || Rakennusten energiatehokkuus || Helsingin asuntokanta uudistuu energiatehokkaammaksi sekä elinkaariasumiseen soveltuvaksi.<br />
|---<br />
| Helsingin kaupungin strategiaohjelma 2013-2016 || 63 || 820 ||rowspan="2"| Rakennusten energiatehokkuus ||rowspan="2"| Maankäytössä ja kaupunkisuunnittelussa tavoitteena on eheä kaupunkirakenne, joka luo taloudellisemmat ja kestävämmät puitteet tiiviille, ekotehokkaalle asunto- ja toimitilarakentamiselle. Helsinki käyttää resursseja harkiten ja tehokkaasti, ja rakentamisessa edistetään kierrätystä sekä yli jäävien materiaalien hyödyntämistä. Liikenne- ja liikkumisjärjestelmät kehitetään sujuvaksi ja joustavaksi.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 11 || 81 ||<br />
|---<br />
| Helsingin kaupungin strategiaohjelma 2013-2016 || 64 || 825 || Rakennusten energiatehokkuus || Asumisen suunnittelussa ja toteuttamisessa periaatteina ovat tiivis yhdyskuntarakenne, energiatehokkuus sekä elinkaariasumiseen soveltuvuus.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 11 || 83 || Rakennusten energiatehokkuus || Rakennuskannan mahdollisimman tehokas käyttö sisältää olemassa olevan rakenteen ylläpidon ja korjauksen energiatehokkaalla tavalla sekä uudisrakentamisessa kehitys- ja rakentamistyön ohjaamisen ennakkoluulottomasti nykyistä paremmalle tasolle.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 11 || 82 || Energiapolitiikka || Energiapolitiikan strategisia valintoja pitkällä tähtäyksellä kaupunkisuunnittelun näkökulmasta tarkastellen on energiantuotannon omavaraisuus priorisoitava korkealle.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 19 || 169 || Energiapolitiikka || Helsingin Energia pyrkii riittävän ennakoivaan edunvalvontaan kansallisella ja EU tasolla, jotta säännökset eivät muodostuisi Helsingin Energian toimintaa syrjiviksi verrattuna eurooppalaisiin toimijoihin. Kansallisella tasolla tulee huolehtia myös eri toimijoiden tasapuolisesta kohtelusta sekä alueellisesta tasapainosta. Samalla varmistetaan, että jo asetettujen tavoitteiden saavuttamista edesauttavat toteutetut varhaiset toimet (early actions) tulevat täysimääräisinä huomioitua. Helsingin kaupungin luottamuselinten ja hallinnon tulee pyrkiä koordinoituihin kaupungin edut huomioiviin energiapoliittisiin näkemyksiin.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 26 || 220 || Energiapolitiikka || Kaupunki turvaa Helsingin Energialle riittävät voimalaitosalueet tulevia tarpeita varten. Nykyiset voimalaitokset ovat satamineen energiahuollon infrastruktuurin kannalta keskeisissä paikoissa, joten niiden tulevaisuus tulee turvata. Uuden sukupolven voimalaitokset edellyttävät runsaasti tilaa, joten kaavoituksessa tulee ajoissa varautua tähän tarpeeseen.<br />
|---<br />
|Helsingin kaupungin ympäristöpolitiikka || 4 || 21 || Ilmastonmuutokseen sopeutuminen || Helsinki on eturivin toimija energiatehokkuudessa, ilmastonmuutoksen hillinnässä ja siihen sopeutumisessa niin kansallisesti kuin kansainvälisesti. <br />
|---<br />
|Helsingin kaupungin ympäristöpolitiikka || 4 || 26 || Ilmastonmuutokseen sopeutuminen || Ilmastonmuutokseen sopeutuminen integroidaan kaikkien hallintokuntien toimintaan riskien minimoimiseksi. Ilmastonmuutoksen vaikutuksista ja keinoista siihen varautumiseksi viestitään kuntalaisille ja yrityksille. <br />
|---<br />
|Helsingin kaupungin ympäristöpolitiikka || 5 || 30 || Ilmastonmuutokseen sopeutuminen || Uusiutuvan energian kuljetus ja käyttö eivät heikennä ilmanlaatua (biopolttoaineet, biomassa ja pienpoltto). <br />
|---<br />
|Helsingin kaupungin ympäristöpolitiikka || 7 || 78 || Ilmastonmuutokseen sopeutuminen || Helsingin kaupungin henkilöstön ja asukkaiden ympäristötietoisuus on Euroopan pääkaupunkien kolmen parhaan joukossa. <br />
|---<br />
|Helsingin kaupungin ympäristöpolitiikka || 7 || 79 || Ilmastonmuutokseen sopeutuminen || Kaupunkilaiset ja kaupungin työntekijät ovat sitoutuneita ympäristöpolitiikan tavoitteisiin.<br />
|---<br />
| Helsingin kaupungin strategiaohjelma 2013-2016 || 21, 64 || 318, 821 || Ilmastonmuutokseen sopeutuminen || Kaupunki sopeutuu ilmastonmuutokseen. Helsinki varautuu lämpenevän ilmaston aiheuttamiin muutoksiin, esimerkiksi tulvien ja hulevesien hallintaa kehittämällä.<br />
|---<br />
| Helsingin kaupungin ympäristöpolitiikka || 4 || 17, 24 || Ilmastonmuutoksen hillintä || Helsingin Energian sähkön ja lämmön tuotannossa ja hankinnassa nostetaan uusiutuvien energialähteiden osuus vuoteen 2020 mennessä vähintään 20 %:iin ja vähennetään kasvihuonekaasupäästöjä sähkön ja lämmön tuotannossa 20 %.<br />
|---<br />
|Helsingin kaupungin ympäristöpolitiikka || 4 || 20 || Ilmastonmuutoksen hillintä || Helsinki tavoittelee hiilineutraalia tulevaisuutta vuoteen 2050 mennessä.<br />
|---<br />
|Helsingin kaupungin ympäristöpolitiikka || 4 || 21 || Ilmastonmuutoksen hillintä || Helsinki on eturivin toimija energiatehokkuudessa, ilmastonmuutoksen hillinnässä ja siihen sopeutumisessa niin kansallisesti kuin kansainvälisesti.<br />
|---<br />
|Helsingin kaupungin ympäristöpolitiikka || 4 || 23 || Ilmastonmuutoksen hillintä || Kasvihuonekaasupäästöt (kulutusperäiset) ovat alentuneet vähintään 20 % vuoteen 2020 mennessä energiatehokkuuden parantamisen ja elinkaareltaan vähäpäästöiseen energiantuotantoon siirtymisen myötä (vertailuvuosi 1990). Selvitetään edellytykset päästötavoitteen nostamiseksi 30 %:iin. <br />
|---<br />
| Helsingin kaupungin strategiaohjelma 2013-2016 || 15 || 205 || Ilmastonmuutoksen hillintä || Helsinki on tunnettu ympäristöviisas vihreän talouden kaupunki. Resurssitehokkuus paranee sekä omassa toiminnassa että yhteistyössä yritysten ja tutkimuslaitosten kanssa.<br />
|---<br />
| Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || 272 || Ilmastonmuutoksen hillintä || Edistetään kestävää liikkumista lisäämällä kävelyn, pyöräilyn ja joukkoliikenteen osuutta liikenteestä. Tavoitteena lisäys prosenttiyksiköllä vuosittain, 4 prosenttiyksikköä valtuustokauden aikana.<br />
|---<br />
| Helsingin kaupungin strategiaohjelma 2013-2016 || 20, 63 || 304, 819 || Ilmastonmuutoksen hillintä || Ympäristökriteerien käyttöä lisätään ja resurssitehokkuutta parannetaan. Helsinki profiloituu ilmastoystävälliseksi kaupungiksi ja resurssitehokkuuden edelläkävijäksi. Kaupunki toimii aktiivisesti ilmastonmuutoksen torjumiseksi ja edistää päästöjen vähentämistä sekä energian tuotannossa että kulutuksessa.<br />
|---<br />
| Helsingin kaupungin strategiaohlejma 2013-2016 || 21 || 312 || Ilmastonmuutoksen hillintä || Koko Helsingin hiilidioksidipäästöjä vähennetään 30 % vuoteen 2020 mennessä vuoden 1990 tasosta.<br />
|---<br />
| Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || 322 || Ilmastonmuutoksen hillintä || Vastuullisen energiapolitiikan tärkein työkalu on energiansäästö<br />
|---<br />
| Helsingin kaupungin strategiaohjelma 2013-2016 || 29, 66 || 456, 457, 847 || Ilmastonmuutoksen hillintä || Hankintatoimintaa tehostetaan ja ympäristövastuuta lisätään. 50 %:ssa kaupungin hankinnoista huomioidaan ympäristönäkökulma vuoteen 2015 mennessä. Helsinki kehittää hankintojaan ympäristöystävällisiksi.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 7 || 52 || Ilmastonmuutoksen hillintä || Helsinki toimii aktiivisesti ilmastonmuutoksen torjuntatyössä ja edistää päästöjen vähentämistä synnyttäviä energian tuotantoon ja kulutukseen liittyviä innovaatioita. Helsinki profiloituu ilmastoystävälliseksi kaupungiksi.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 23 || 194 || Ilmastonmuutoksen hillintä || Tehokkainta on tuottaa edelleen pääosa energiasta yhteistuotantona. Kaupungin kasvava kaukolämpökuorma tulee hyödyntää täysimääräisesti sähkön ja lämmön yhteistuotannolla. Etsitään keinoja, jotka edistävät rakentajien liittymistä kaukolämpöverkkoon aina, kun se on mahdollista.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 23 || 195 || Ilmastonmuutoksen hillintä || Helsingin oman energiantuotannon riippuvuutta fossiilisista tuontipolttoaineista pyritään vähentämään lisäämällä uusiutuvien energialähteiden käyttöä, kuitenkin niin, että kivihiilen käyttömahdollisuus säilyy Helsingin Energian yhteistuotantolaitoksissa.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 23 || 196 || Ilmastonmuutoksen hillintä || Helsingin kaupungin ohjauskeinojen uudistuksissa huomioidaan energiantuotannon investointisyklit. Kaupunki pyrkii vaikuttamaan siihen, että kansallisesti jaettavien päästöoikeuksien määrä on sähkön ja lämmön yhteistuotannon kehitystä tukeva.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 24 || 199 || Ilmastonmuutoksen hillintä || Helsingin Energia tuntee ympäristövastuunsa toiminnan kaikilla osa-alueilla.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 25 || 207 || Ilmastonmuutoksen hillintä || Helsingin Energia päivittää vuosittain uusiutuvan energian kehitysohjelmansa. Päästövähenemien kannalta kustannustehokkaat hankkeet viedään toteutukseen.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 25 || 208 || Ilmastonmuutoksen hillintä || Uusiutuvien energialähteiden käyttöä sähkön ja kaukolämmön tuotannossa lisätään lisäämällä huomattavasti muun muassa tuulivoiman osuutta sähkön hankinnasta.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 25 || 214 || Ilmastonmuutoksen hillintä || Helsingin Energia lisää vihreän sähkön tarjontaa ja selvittää mahdollisuuksia vihreän kaukolämmön tarjoamiseksi kuluttajille.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 25 || 215 || Ilmastonmuutoksen hillintä || Kaupunki selvittää vihreän sähkön lisäämismahdollisuudet omaan käyttöönsä kuten kiinteistöjen ja raideliikenteen tarpeeseen.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 26 || 221 || Ilmastonmuutoksen hillintä || Helsingin Energia selvittää aktiivisesti mahdollisuuksia osallistua pelkkään sähköntuotantoon tarkoitettuihin bio- tai sekapolttolaitoshankkeisiin. Sama koskee tuulivoimaa. Tuulivoiman toteutusta arvioitaessa tulee huomioida tuuliolosuhteet.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 27 || 225 || Ilmastonmuutoksen hillintä || Helsingin kaupunki kehittää sähkön ja lämmön yhteistuotantoa ja uusia hajautetun energiantuotannon ratkaisuja rinnakkain.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 41 || 340 || Ilmastonmuutoksen hillintä || Helsingin ja pääkaupunkiseudun liikennejärjestelmän kehittämisessä panostetaan liikenteen kokonaisenergiankulutuksen, hiilidioksidipäästöjen ja muiden ympäristöhaittojen vähentämiseen, tilankäytön tehostamiseen sekä liikenteen toimivuuden ja liikenneturvallisuuden parantamiseen.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 41 || 341 || Ilmastonmuutoksen hillintä || Joukkoliikenteen seudullista palvelutasoa ja kilpailukykyä parannetaan erityisesti laajentamalla metro- ja raitioliikenneverkkoa sekä kaupunkiratoja tehostamalla liityntälinjastoa raideliikenteen asemille sekä parantamalla asemien liityntäpysäköintimahdollisuuksia. Erityishuomiota kiinnitetään lisäksi poikittaisen joukkoliikenteen kehittämiseen. Joukkoliikenteen kehittämisen avulla pyritään henkilöautosidonnaisuuden vähentämiseen, ohjaamaan pääosa liikenteen kasvusta joukkoliikenteeseen sekä kasvattamaan joukkoliikenteen kulkumuoto-osuutta ja tätä kautta pitämään Helsingin ja koko pääkaupunkiseudun liikennejärjestelmä toimivana ja liikenteen kokonaisenergian kulutus mahdollisimman pienenä.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 41 || 342 || Ilmastonmuutoksen hillintä || Uusien alueiden suunnittelun yhteydessä kiinnitetään aiempaa enemmän huomiota alueen liikennejärjestelmävaihtoehtojen energiankulutukseen.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 42 || 343 || Ilmastonmuutoksen hillintä || Linja-autoliikenteen kalustoa ja kaupungin muuta ajoneuvokalustoa sekä työkonekantaa uudistetaan vähemmän polttoainetta kuluttavaksi ja vähäpäästöisemmäksi.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 43 || 350 || Ilmastonmuutoksen hillintä || Koko kaupungin alueelle luodaan yhtenäinen ja kattava palveluiden, kävely-, pyöräily- ja joukkoliikenneyhteyksien verkosto. Pyörätieverkkoa täydennetään edelleen sekä edistetään kävelyn ja pyöräilyn turvallisuutta, esteettömyyttä ja viihtyisyyttä. Helsingin kaupunkipyöräkonseptia kehitetään osana ympäristöystävällistä liikennejärjestelmää, joka mahdollistaa ennakkoon suunnitellut joukkoliikenteen ja kaupunkipyörän matkaketjut. Nykyisen kaupunkipyöräjärjestelmän tilalle hankitaan nykyaikainen, luotettava ja asiakasystävällinen järjestelmä.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 43 || 351 || Ilmastonmuutoksen hillintä || Autojen yhteiskäyttöä lisätään. Kaupungin ja yhteiskäyttöautoja tarjoavien yritysten yhteistyötä kehitetään tavoitteena vähentää tarvetta yksityisauton hankintaa Helsingissä.<br />
|---<br />
| Helsingin kaupungin energiapoliittisia linjauksia || 43 || 352 || Ilmastonmuutoksen hillintä || Selvitetään mahdollisuudet suosia vähäpäästöisten autojen käyttöä.<br />
|}<br />
<br />
{{comment|# |Hyvin näyttää löytyvän tavoitteenmäärittelyjä. Olisiko hyvä luettavuuden, vertailun ja yhteenvetämisen kannalta, jos sisällön jakaisi ja ryhmittelisi uudelleen kolmeen osaan: 1) rakennusten energiatehokkuus, 2) ilmastonmuutoksen torjunta, 3) ilmastonmuutoksen hillintä? |--[[Käyttäjä:Mikko Pohjola|Mikko Pohjola]] ([[Keskustelu käyttäjästä:Mikko Pohjola|keskustelu]]) 23. syyskuuta 2014 kello 07.48 (UTC)}}<br />
<br />
== Perustelu == <br />
<br />
Tässä vaiheessa kysymyksen tarkastelu rajataan valikoidusta aineistosta (kts. [[Helsingin ilmastonmuutos -tiekartta]]) löytyviin tavoitteenmäärittelyihin.<br />
<br />
== Katso myös ==<br />
<br />
* [[Helsingin ilmastonmuutos -tiekartta]]<br />
* [[Helsingin strategiset energiatehokkuus- ja ilmastotavoitteet]]<br />
* [[Helsingin ohjelmalliset energiatehokkuus- ja ilmastotoimenpiteet ja -tavoitteet]]<br />
* [[Helsingin hallintokuntien energiatehokkuus- ja ilmastotoimenpiteet ja -tavoitteet]]<br />
<br />
== Viitteet ==<br />
<br />
<references/><br />
<br />
== Kommentoi ==<br />
<br />
{{kommentointityökalu}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=26935Kohdistamo2014-10-03T13:19:03Z<p>Sharp: Lisätty tarkastelu siitä, onko aloitusaika lopetusaikaa myöhäisempi. Oletusprojekti vaihdettu Helsingin ilmastokarttaan.</p>
<hr />
<div>{{metodi}}<br />
[[op_en:Timetracker]]<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'H2O';H2O;<br />
'Helsingin ilmastokartta';Helsingin ilmastokartta;<br />
'IEHIAS';IEHIAS;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Helsingin ilmastokartta'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
if (jaksoko && alku > loppu){<br />
cat("Kirjaus epäonnistui, aloitusaika on myöhäisempi kuin lopetusaika.\n")<br />
cat("Tarkasta aika ja yritä uudelleen.")<br />
} else{<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username)<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin.\n") <br />
}<br />
<br />
<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="output" embed=1 showcode=0 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'H2O';H2O;<br />
'Helsingin ilmastokartta';Helsingin ilmastokartta;<br />
'IEHIAS';IEHIAS;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä, projekti){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
<br />
# pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
# Varoitus tulee arvosta k1 mutta tällä ei ole käytännön merkitystä. Varoitus ei ole virhe eikä toiminta keskeydy.<br />
#<br />
# pois <- subset(pois, pois > 0)<br />
# dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# # ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
#<br />
# dat on data.frame ja siksi et voi käyttää sitä vertailussa vektoriin. Sen sijaan 1:nrow(dat) tuottaa juoksevan rivinumeroinnin dat:lle. <br />
# Kirjausnro puolestaan pitää muuttaa numeroiksi, jotta sitä voi verrata rivinumeroihin. Suositeltavampi tyyli on tämä:<br />
<br />
pois <- as.numeric(levels(poistot$Kirjausnro)[poistot$Kirjausnro])<br />
dat <- dat[!1:nrow(dat) %in% pois , colnames(dat) != "Result"]<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
if (tekijä != "Kaikki") tekijä <- gsub("\\s", "", unlist(strsplit(tekijä, ","))) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
kirjausajat(alku, loppu, tekijä, projekti)<br />
<br />
<br />
#objects.store(output, kirjausajat)<br />
# Periaatteena on kaksi koodia: initiate luo funktiot, ovariablet ja muut yleiskäyttöiset oliot ja tallentaa ne serverille.<br />
# Käyttökoodi answer kutsuu noita olioita ja suorittaa niillä tapauskohtaisia toimenpiteitä. Koska tämä on tapauskohtainen<br />
# koodi, ei kannata tallentaa olioita (ethän kutsu niitä missään). Kunhan koodi on vakiintunut, kannattaa se jakaa<br />
# yleiseen ja projektikohtaiseen. Esimerkiksi tekijöiden tunnukset kannattaa ottaa funktioon parametriksi, jotta funktio<br />
# olisi yleispätevä, ja parametrin arvo kerrotaan projektikohtaisessa koodissa.<br />
</rcode><br />
<br />
<br />
<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
nro <- gsub("\\s", "", unlist(strsplit(nro, ","))) # Pilkotaan pilkusta ja poistetaan alku- ja loppuvälilyönnit<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", <br />
act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Nämä kirjaukset poistettu onnistuneesti.\n")<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}<br />
<br />
== Aikakoneen laskenta ==<br />
<br />
Tässä on siistitty ja dokumentoitu versio [[Aikakone]]en makeTimeline-funktiosta, joka ottaa sisäänsä työajan alku- ja loppuaikoja ja tuottaa aikajanan. Funktion olennainen lisäarvo on siinä, että sille voi antaa päällekkäisiä ajanjaksoja, ja se korvaa vanhemmat kirjaukset (eli ylempänä taulukossa olevat) uudemmilla, jos niiissä on päällekkäisyyksiä. Toinen lisäarvo on se, että se automaattisesti käsittelee jokaisen henkilön ajankäyttöä erikseen, mutta muiden indeksien suhteen se vain periyttää tiedot aikajanalle. Muita indeksejä voi siis käyttää tarpeen mukaan.<br />
<br />
{{comment|# |Kehityskohteita: tarvitaanko koskaan tilannetta, jossa henkilösarakkeita onkin useita? Ei liene tärkeä, vaan tarvittaessa tämä toteutetaan luomalla tämmöinen sarake etukäteen.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 15. heinäkuuta 2014 kello 08.28 (UTC)}}<br />
<br />
<rcode embed=1><br />
library(OpasnetUtils)<br />
<br />
makeTimeline2 <- function (<br />
events, # data.frame with time cols (start and end) and possibly other indices. One index may separate individuals.<br />
cols = c("Alku", "Loppu"), # Names of the start and end time columns<br />
personcol = NULL # Name of the column defining individuals, if any<br />
) {<br />
<br />
if (!is.numeric(events[cols[1]])) { # If not numeric, assume a time format.<br />
for (m in 1:2) {<br />
events[[cols[m]]] <- as.POSIXct(events[[cols[m]]], tz = "Europe/Helsinki")<br />
}<br />
}<br />
if(is.null(personcol)) { # Make a temporary column for individuals<br />
personcol <- "Persontemp"<br />
events$Persontemp <- "Temp"<br />
}<br />
<br />
out <- data.frame()<br />
<br />
for(k in as.character((unique(events[[personcol]])))) { # Look at each individual's events separately.<br />
<br />
event <- events[events[[personcol]] == k , colnames(events) != personcol]<br />
<br />
# timeline is a data.frame with all starts and ends as one timeline. <br />
# Events down in the "event" data.frame replace previous events higher in "event", if they overlap.<br />
timeline <- data.frame(Time = min(event[[cols[1]]]), Eventrow = nrow(event) + 1) # First time point<br />
<br />
for (i in 1:nrow(event)) { # Go through each row and replace the time slot in timeline with the event.<br />
<br />
temp <- data.frame(<br />
Time = event[i , cols[1]],<br />
End = event[i , cols[2]],<br />
EventrowStart = i # Eventrows are used temporarily. In the end they are replaced with all indices in event.<br />
)<br />
<br />
# Add new time points to the timeline with the event row mentioned.<br />
timeline <- merge(timeline, temp[c("Time", "EventrowStart")], all = TRUE)<br />
colnames(temp) <- c("Remove", "Time", "EventrowEnd")<br />
timeline <- merge(timeline, temp[, c("Time", "EventrowEnd")], all = TRUE)<br />
<br />
# Go through intermediate time points and replace them with the new event.<br />
for (j in 2:nrow(timeline)) {<br />
if (is.na(timeline$Eventrow[j])) {<br />
timeline$Eventrow[j] <- timeline$Eventrow[j - 1]<br />
}<br />
if (is.na(timeline$EventrowStart[j]) & is.na(timeline$EventrowEnd[j])) {<br />
timeline$EventrowStart[j] <- timeline$EventrowStart[j - 1]<br />
}<br />
}<br />
# If the Eventrow is not a start, it must be an end.<br />
timeline$Eventrow <- ifelse(!is.na(timeline$EventrowStart), timeline$EventrowStart, timeline$Eventrow)<br />
timeline <- timeline[, c("Time", "Eventrow")]<br />
}<br />
<br />
# Add one row for the last timepoint.<br />
event <- rbind(event, rep(NA, ncol(event)))<br />
event[nrow(event) , cols[1]] <- max(timeline$Time)<br />
event$Eventrow <- row(event)[ , 1]<br />
<br />
# Bring back the other indices from event.<br />
timeline <- merge(timeline, event)<br />
timeline <- timeline[order(timeline$Time), ]<br />
timeline <- timeline[!colnames(timeline) %in% c("Eventrow", cols)]<br />
<br />
if(personcol != "Persontemp") timeline[[personcol]] <- k<br />
<br />
out <- rbind(out, timeline)<br />
<br />
}<br />
# Calculate the durations of each time slot in the timeline.<br />
out$Duration <- out$Time[c(2:nrow(out), NA)] - out$Time<br />
# Remove the last duration value from each individual's timeline.<br />
temp <- out[[personcol]]<br />
out$Duration <- ifelse(temp[c(2:length(temp), NA)] != temp | 1:length(temp) == length(temp), 0, out$Duration)<br />
<br />
return(out)<br />
}<br />
<br />
events <- data.frame(<br />
Projekti = c("LVM", "LVM", "Pneumokokki"),<br />
Alku = c("2014-07-14 12:00", "2014-07-15 13:00", "2014-07-14 12:30"), <br />
Loppu = c("2014-07-14 14:00", "2014-07-15 14:15", "2014-07-15 14:00"),<br />
Person = c("Heikki", "Ville", "Ville")<br />
)<br />
<br />
dat <- makeTimeline2(events, cols = c("Alku", "Loppu"), personcol = "Person")<br />
<br />
cat("Lähtödata\n")<br />
<br />
oprint(events)<br />
<br />
cat("Aikajana. Tapahtumien kestot ovat minuutteina.\n")<br />
<br />
dat$Time <- format(dat$Time) # Convert times from POSIXct to character.<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
== Korjauskoodi ==<br />
{{tuloslinkki}}<br />
<br />
<rcode label="Korjaa kirjaukset" variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
temp <- opbase.data("op_fi3948.kirjaukset", "12911")<br />
<br />
derp <- 12993<br />
<br />
#durp <- list()<br />
for (i in derp) {<br />
durp <- opbase.data("op_fi3948.kirjaukset", as.character(i))<br />
temp <- rbind(temp, durp)<br />
}<br />
<br />
opbase.upload(<br />
temp, <br />
who = wiki_username,<br />
name = pagename,<br />
subset = "Kirjaukset"<br />
)<br />
</rcode><br />
<br />
<rcode label="Korjaa poistot" variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
temp <- opbase.data("op_fi3948.kirjauspoistot", "12760")<br />
<br />
derp <- opbase.data("op_fi3948.kirjauspoistot", "12864")<br />
<br />
temp <- rbind(temp, derp)<br />
<br />
<br />
opbase.upload(<br />
temp, <br />
who = wiki_username,<br />
name = pagename,<br />
subset = "Kirjauspoistot"<br />
)<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Helsingin_ohjelmalliset_energiatehokkuus-_ja_ilmastotoimenpiteet_ja_-tavoitteet&diff=26932Helsingin ohjelmalliset energiatehokkuus- ja ilmastotoimenpiteet ja -tavoitteet2014-10-03T12:42:47Z<p>Sharp: /* Vastaus */</p>
<hr />
<div>{{muuttuja|edistyminen=Luonnos|edistymistaulu=Kyllä}} <br />
<br />
== Kysymys ==<br />
<br />
Minkälaiset tulisi olla Helsingin kaupungin ohjelmalliset toimenpiteet ja tavoitteet rakennusten energiatehokkuuden, ilmastonmuutoksen hillinnän ja ilmastonmuutokseen sopeutumisen suhteen?<br />
<br />
'''Rajaus'''<br />
<br />
Tässä vaiheessa kysymyksen tarkastelu rajataan valikoidusta aineistosta (kts. [[Helsingin ilmastonmuutos -tiekartta]]) löytyviin toimenpiteisiin ja tavoitteenmäärittelyihin.<br />
<br />
== Vastaus ==<br />
<br />
* ''Aineistoista etsitään rakennusten energiatehokkuuteen, ilmastonmuutoksen hillintään ja ilmastonmuutokseen sopeutumiseen liittyviä sekä toimenpiteitä (päätöksiä tai pyrkimyksiä tehdä jotain) että tavoitteenmäärittelyjä (kuvauksia siitä minkälaisia muutoksia halutaan tapahtuvan) <br />
* ''Lisäksi huomioidaan myös muut aiheen kannalta oleelliset asiat, jotka eivät selvästi ole tunnistettavissa toimenpiteiksi tai tavoitteiksi<br />
* ''Löydetyt toimenpiteet ja tavoitteet (ja mahdolliset muut oleelliset asiat) nimetään tähän. Ryhmittely esim. tausta-aineistoittain ja/tai aiheittain ( i) rakennusten energiatehokkuus, ii) ilmastonmuutoksen hillintä, iii) ilmastonmuutokseen sopeutuminen)<br />
* ''Kunkin toimenpiteen tai tavoitteen (tai muun) kohdalle merkitään myös missä kohdassa se esiintyy tausta-aineistossa alkuperäisaineiston nimi + sivu(t) tai välilehti/rivi(t)/sara(k)ke(et)<br />
* ''Lisäksi kunkin toimenpiteen tai tavoitteen (tai muun) osalta merkitään mihin strategiatason tavoitteeseen/tavoitteisiin se liittyy ja missä suhteessa: a) tukee, b) on ristiriidassa, c) ei liity (nimettyihin strategiatason tavoitteisiin), d) muu<br />
<br />
<br />
<br />
{| class="wikitable sortable" {{prettytable}}<br />
|+'''Ohjelmatason tavoitteenmäärittelyt<br />
! Nro !! Aineisto !! Sivunumero !! Osa-alue !! Tavoite !! Relaatio !! Strategiatason tavoite<br />
|---<br />
| 1 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 2, 79 || Ilmastonmuutoksen hillintä || Helsingin kasvihuonekaasupäästöjä vähennetään vähintään 20 % vuoden 1990 tasolta vuoteen 2020 mennessä. || ||<br />
|---<br />
| 2 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 78 || Ilmastonmuutoksen hillintä || Helsinki tavoittelee hiilineutraalia tulevaisuutta vuoteen 2050 mennessä || ||<br />
|---<br />
| 3 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 78, 79 || Ilmastonmuutoksen hillintä || 2016 kiinteä 9 % säästötavoite vuoden 2005 kaupunkikonsernin kokonaiskulutuksesta ja energian loppukäytön tehokkuus on parantunut 9 % || || <br />
|---<br />
| 4 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 79 || Ilmastonmuutoksen hillintä || 20 % energian tuotannosta uusiutuvista lähteistä || ||<br />
|---<br />
| 5 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 79 || Ilmastonmuutoksen hillintä || 2030 päästövähennys 39 %, 4,3t (/asukas) ja liikenteen päästövähennys 20 % || ||<br />
|---<br />
| 6 || Helsingin 30 prosentin päästövähennysselvitys || 2 || Ilmastonmuutoksen hillintä || Helsingin strategiaohjelman mukaisesti vähennetään kaupunkialueen hiilidioksidipäästöjä 30 % vuoteen 2020 mennessä vuoden 1990 tasosta || ||<br />
|---<br />
| 7 || Helsingin 30 prosentin päästövähennysselvitys || 2 || Ilmastonmuutoksen hillintä || Helsinki toimii aktiivisesti ilmastonmuutoksen torjunnassa ja tukee energian tuotantoon ja kulutukseen liittyvien päästöjä vähentävien innovatiivisten ratkaisujen kehittämistä. || ||<br />
|---<br />
| 8 || Helsingin 30 prosentin päästövähennysselvitys || 2 || Ilmastonmuutoksen hillintä || Energiantuotannon päästöjä vähennetään 20 % vuoteen 2020 mennessä. || ||<br />
|---<br />
| 9 || Helsingin 30 prosentin päästövähennysselvitys || 2 || Ilmaston uutoksen hillintä || 20 % energiantuotannosta uusiuvutista energianlähteistä 2020 || Sama kuin || Tavoite 4<br />
|}<br />
<br />
<br />
{| class="wikitable sortable" {{prettytable}}<br />
|+'''Ohjelmatason toimenpiteet<br />
! Nro !! Aineisto !! Sivunumero !! Osa-alue !! Toimenpide !! Relaatio !! Strategiatason tavoite<br />
|---<br />
| 1 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 2 || Ilmastonmuutoksen hillintä || Kaikilla virastoilla ja laitoksilla on energiansäästövelvoite vähentää vuotuista kulutusta 2 % verrattuna vuoden 2010 tasoon. || ||<br />
|---<br />
| 2 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 31 || Rakennusten energiatehokkuus || Kaavoitetaan kaupunki kokonaisuutena energiatehokkaaksi || ||<br />
|---<br />
| 3 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 33 || Rakennusen energiatehokkuus || Lisätään yhteiskäyttötiloja, jolloin pienempi määrä asuinneliöitä riittää henkeä kohti || ||<br />
|---<br />
| 4 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 34 || Rakennusten energiatehokkuus || Varmistetaan, että rakennusten energiaa säästävät järjestelmät toimivat || ||<br />
|---<br />
| 5 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 35 || Ilmastonmuutoksen hillintä || Mitataan energiankulutus vuokra-asunnoissa ja laskutetaan asukkaita käytön mukaan || ||<br />
|---<br />
| 6 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 37 || Rakennusten energiatehokkuus || Kuvataan kaupunki lämpökameralla lämpöhukkatalojen ja tiiviiden talojen erottamiseksi || ||<br />
|---<br />
| 7 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 38 || Rakennusten energiatehokkuus || Peruskorjataan vanhat talot energiatehokkaiksi || ||<br />
|---<br />
| 8 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 40 || Rakennusten energiatehokkuus || Perustetaan rahasto, jolla rahoitetaan energiaviisaita korjauksia || ||<br />
|---<br />
| 9 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 41 || Ilmastonmuutoksen hillintä || Hinnoitellaan kaukolämpö niin, että paljon kuluttavat maksavat energiasta enemmän || ||<br />
|---<br />
| 10 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 42 || Rakennusten energiatehokkuus || Peritään energiatehokkaista rakennuksista vähemmän kiinteistöveroa, kuin tehottomista || ||<br />
|---<br />
| 11 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 43 || Rakennusten energiatehokkuus || Kannustetaan rakennutajia energiatehokkaisiin vaihtoehtoihin rakennusvaiheessa || ||<br />
|---<br />
| 12 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 46 || Ilmastonmuutoksen hillintä || Energiaviisaiden teknologioiden pilotointi- ja demonstraatiohankkeita toteutetaan aiempaa voimakkaammin kaupungin vetäminä tai tukemina. Tuloksia esitellään laajemmin. || ||<br />
|---<br />
| 13 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 47 || Ilmastonmuutoksen hillintä || Kaupunki myöntää lainantakuita energiatehokasta vaihtoehtoa ostamassa oleville. || ||<br />
|---<br />
| 14 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 48 || Ilmastonmuutoksen hillintä || Tehdään korttelikohtaisia energiankulutuksen katselmointeja, joiden avulla voidaan tavoittaa kaikki kaupungin kotitaloudet || ||<br />
|---<br />
| 15 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 50 || Ilmastonmuutoksen hillintä || Hinnoitellaan sähkö energian säästöä tukevaksi: korkeampi sähkönkulutus maksaa suhteessa enemmän || ||<br />
|---<br />
| 16 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 51 || Ilmastonmuutoksen hillintä || Järjestetään energiatehokkuuskilpailulja || ||<br />
|---<br />
| 17 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 54 || Ilmastonmuutoksen hillintä || Tehdään yhteistyötä elinkeinoelämän kanssa yritysten kannstamiseksi valitsemaan energiatehokkaita vaihtoehtoja || ||<br />
|---<br />
| 18 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 55 || Ilmastonmuutoksen hillintä || Myönnetään yrityksille energiaviisaita lainatakuita || ||<br />
|---<br />
| 19 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 56 || Ilmastonmuutoksen hillintä || Koulutetaan ekotukihenkilöitä auttamaan yritysten henkilöstöä muuttamaan toimintatapoja ympäristöystävällisemmiksi || ||<br />
|---<br />
| 20 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 57 || Ilmastonmuutoksen hillintä || Opetetaan ihmiset lapsesta sti toimimaan ympäristöystävälisesti esim. Vihreä lippu -ohjelman avulla || ||<br />
|---<br />
| 21 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 58 || Ilmastonmuutoksen hillintä || Perustetaan ilmastoverkosto hallinnon ja elinkeinoelämän väälille edistämään energiatehokkuutta || ||<br />
|---<br />
| 22 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 59 || Ilmastonmuutoksen hillintä || Julkisissa hankinnoissa suositaan energiatehokkaita vaihtoehtoja || ||<br />
|---<br />
| 23 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 62 || Ilmastonmuutoksen hillintä || Maankäytön suunnittelulla edistetään joukkoliikenteen käyttöä ja jalankulkua || ||<br />
|---<br />
| 24 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 64 || Ilmastonmuutoksen hillintä || Kehitetään pyröpysäköinnin mahdollisuuksia etenkin lisäämällä turvallisia pysäköintipaikkoja julkisen liikenteen solmukohtiin || ||<br />
|---<br />
| 25 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 66 || Ilmastonmuutoksen hillintä || Perustetaan seudullinen liikkumiskeskus, jonka avulla henkilöautoliikennettä vähennetään liikenteen ohjauksen keinoin || ||<br />
|---<br />
| 26 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 67 || Ilmastonmuutoksen hillintä || Tehdään mahdolliseksi joukkoliikenteen matkalipun maksaminen jälkikäteen joukoliikenteen houkuttelevuuden lisäämiseksi || ||<br />
|---<br />
| 27 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 68 || Ilmastonmuutoksen hillintä || Joukkoliikenteen lipputyyppeihin lisätään yhteislippu, jolla monen hengen porukka voi matkustaa halvemmalla || ||<br />
|---<br />
| 28 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 69 || Ilmastonmuutoksen hillintä || Perustetaan logistiikkakeskus, jossa kuljetukset yhtenäistetään ja siten kuljetusajoja vähennetään || ||<br />
|---<br />
| 29 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 69 || Ilmastonmuutoksen hillintä || Kannustetaan kuljetusyrityksiä energiatehokkaaseen toimintaan mm. edellyttämällä energiatehokkuussopimusta || ||<br />
|---<br />
| 30 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 71 || Ilmastonmuutoksen hillintä || Kehitetään pyöräilyn pääväyliä tekemällä niistä turvallisempia, häiriöttömiä ja suoria yhteyksiä lähtöpaikan ja määränpään välillä || ||<br />
|---<br />
| 31 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 72 || Ilmastonmuutoksen hillintä || Asennetaan keskustan alueelle sähköautojen latauspisteitä ja varataan vain niitä varten omia pysäköintipaikkoja || ||<br />
|---<br />
| 32 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 74 || Ilmastonmuutoksen hillintä || Luodaan keskustaan ympäristövyöhyke, jolle pääsee vain vähäpäästöisellä ajoneuvolla || ||<br />
|---<br />
| 33 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 75 || Ilmastonmuutoksen hillintä || Otetaan käyttöön ruuhkamaksut || ||<br />
|---<br />
| 34 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 77 || Ilmastonmuutoksen hillintä || Edistestään taloudellista ajotapaa mm. kouluttamalla ammattiajajat siihen || ||<br />
|---<br />
| 35 || Helsingin 30 prosentin päästövähennysselvitys || 18 || Rakennusten energiatehokkuus ||Kaupunki ottaa kaikessa maankäytön suunnittelussa huomioon rakennusten sijoittelun, muodon ja suuntauksen vaikutukset energiankulutukseen. || ||<br />
|---<br />
| 36 || Helsingin 30 prosentin päästövähennysselvitys || 18 || Ilmastonmuutoksen hillintä || Kaavoittaessa tehdään päästötarkastelut, jotka katsotaan energiaperäisiä päästöjä, rakentamisen materiaalivalintoja ja maankäytön muutoksista aiheutuvia päästöjä. || ||<br />
|---<br />
| 37 || Helsingin 30 prosentin päästövähennysselvitys || 18 || Ilmastonmuutoksen hillintä || Edistetään vähäpäästöistä rakentamista ohjaamalla rakennusten sijoittelua, muotoa ja suuntausta kaavoituksella, rakenta-mistapaohjeilla ja tontinluovutusehdoilla. || ||<br />
|--<br />
| 38 || Helsingin 30 prosentin päästövähennysselvitys || 20 || Rakennusten energiatehokkuus || Käynnistetään peruskorjausten yhteydessä Energiarenessanssia toteuttava kehitysohjelma. Tunnistetaan lupaavimmat alueet energiatehokkuuden parantamiselle, aktivoidaan alueiden kiinteistöjen omistajia ja asukkaita energiatehokkuuden parantamiseen ja fasilitoidaan aluekohtaisia yhteisperuskorjaushankkeita. || ||<br />
|--<br />
| 39 || Helsingin 30 prosentin päästövähennysselvitys || 20 || Rakennusten energiatehokkuus || Energiarenessanssi-toimenpide toteutetaan peruskorjaamalla lähiöitä ja kortteleita yhteisprojekteina, jolloin peruskorjausten kokonaiskustannukset alenevat. Kaupunki voi tukea peruskorjauksien investointeja omistustonttien lisärakentamisoikeuk-sien ja vuokratonttien täydennysrakentamiskorvauksien avulla. || ||<br />
|---<br />
| 40 || Helsingin 30 prosentin päästövähennysselvitys || 21 || Rakennusten energiatehokkuus || Kaupunki perustaa kannattaville energiatehokkuuskorjaushankkeille tarkoitetun rahaston. Rahaston pääomalla rahoitetaan energiatehokkuusinvestointeja. Rahoitetut hankkeet maksavat pääomalle korkoa, joka rahoitetaan energiatehokkuuden avulla saavutetuista säästöistä. Korkotuloilla voidaan rahoittaa edelleen uusia hankkeita. || ||<br />
|---<br />
| 41 || Helsingin 30 prosentin päästövähennysselvitys || 23 || Rakennusten energiatehokkuus || Suoritetaan loppuun käynnissä oleva rakennuskannan lämpökamerakuvaus ilmasta lämpöhukkarakennuksien tunnistamiseksi. Selvitetään asuinrakennuksiksi muutettavissa olevien toimitilojen määrä ja sijainnit. Julkaistaan tulokset eri tahojen hyödynnettäväksi. || ||<br />
|---<br />
| 42 || Helsingin kaupungin energiapoliittisia linjauksia || 21 || Ilmastonmuutoksen hillintä || Helsingin alueen energiantuotanto-, siirto- ja jakelujärjestelmää kehitetään yhtenä kokonaisuutena. Näin varmistetaan energian riittävä saatavuus ja häiriötön toimitus asiakkaille. Pääkaupunkiseudun energiaverkkoja tarkastellaan yhtenä laajana kokonaisuutena ja synnytetään yhteistyötä eri toimijoiden kesken. || ||<br />
|---<br />
| 43 || Helsingin kaupungin energiapoliittisia linjauksia || 21 || Ilmastonmuutoksen hillintä || Helsinki selvittää myös biopolttoaineiden lisääntyvää käyttöä kuitenkin energiantuotannon hyvän hyötysuhteen säilyttäen tulevissa voimalaitosratkaisuissa. Tämä edellyttää riittävien biopolttoaineiden varastotilojen varaamista ja liikennevaihtoehtojen selvittämistä ja huomioimista Helsingin Energian polttoainelogistiikan kannalta oleellisiin kohteisiin. || ||<br />
|---<br />
| 44 || Helsingin kaupungin energiapoliittisia linjauksia || 22 || Ilmastonmuutoksen hillintä || Helsingin kaupungin eri yksiköt kehittävät omaa energiankäyttöään tehokkaampaan ja säästävämpään suuntaan. Helsinkiläisille jaetaan energiansäästöinformaatiota, jonka tuottamiseen Helsingin Energia osaltaan myötävaikuttaa. Energiansäästödirektiivi ja sen toteutukseen tehtävät sopimukset tulevat määrittelemään käytännön toimenpiteet ja niiden vaikutusten seuraamisen. || ||<br />
|---<br />
| 45 || Helsingin kaupungin energiapoliittisia linjauksia || 23 || Ilmastonmuutokseen sopeutuminen || Helsingin Energia varautuu päästöoikeuksien niukkenemiseen ja kallistumiseen lähivuosina ja panostaa riskien torjumiseen. || ||<br />
|---<br />
| 46 || Helsingin kaupungin energiapoliittisia linjauksia || 31 || Rakennusten energiatehokkuus || Kaupungin omistamien rakennusten energiankäytön tehostaminen: 1. Panostetaan erityisesti olemassa olevan rakennuskantansa energiatehokkuuden parantamiseen korjausten sisällön ja ylläpidon tehokkuuden kautta. 2. Uudis- ja korjausrakennuskohteissa sovelletaan myös matalaenergiarakentamista tarjoten päätöksentekoon edellytykset arvioida elinkaarikustannuksia ja energiatehokkuutta perinteisten investointikustannusten lisäksi. 3. Kytketään investointikohteisiin pitkiä takuuaikoja ja energiankulutustavoitteita osana elinkaarikustannuksia. 4. Selvitetään edellytykset hankekohtaiseen erityisrahoitukseen tavoitteena, etteivät energian tehokkuusinvestoinnit vaikuta perittäviin pääomavuokriin. 5. Huolehditaan siitä, että EU-tason direktiiveihin suoraan liittyvät energiansäästösopimukset kaupungin ja valtion välillä toteutuvat. 6. Sähkön kulutukseen pyritään vaikuttamaan entistä tehokkaammin kaikin käytettävissä olevin keinoin mukaan lukien hankintojen arviointi myös elinkaarikustannusten kautta. || ||<br />
|---<br />
| 47 || Helsingin kaupungin energiapoliittisia linjauksia || 32 || Rakennusten energiatehokkuus || Koko kaupunkialueen rakennusten energiankäytön tehostaminen: 1. Lisätään tiedottamista hyviksi todetuista suunnittelu-, rakentamis- ja hankintaratkaisuista. 2. Parannetaan yleisesti rakentamiseen ja ylläpitoon liittyviä tiedonsaantimahdollisuuksia nykyisissä asiointipisteissä: rakennusvalvontavirasto, kiinteistöviraston asuntoasiainosasto, Helsingin Energia, HKRRakennuttaja ja ympäristökeskus. 3. Selvitetään mahdollisuudet muuttaa tonttien luovutus- ja vuokrausehtoja energiatehokkuus huomioonottavaksi. 4. Suunnataan investointitukia yhteistoiminnassa valtiovallan kanssa. || ||<br />
|---<br />
| 48 || Helsingin kaupungin energiapoliittisia linjauksia || 42 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Dieselbussit: HKL jatkaa tutkimusta eri dieselmoottoreiden aiheuttamista todellisista päästöistä helsinkiläisissä liikenneolosuhteissa. HKL kannustaa bussiliikennöitsijöitä ympäristön kannalta puhtaampiin moottorivalintoihin bussiliikenteen kilpailuttamisessa käytettävän laatupisteytyksen avulla. Lisäksi HKL pyrkii osaltaan vaikuttamaan, että bussin moottorin energiankulutus lisätään EU-tasolla yhdeksi standardoidusti mitattavaksi aiheeksi myrkyllisten päästöjen rinnalle. || ||<br />
|---<br />
| 49 || Helsingin kaupungin energiapoliittisia linjauksia || 42 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Biodiesel polttoaineena: HKL toimii aktiivisena osapuolena kolmivuotisessa toisen sukupolven biodieselin NExBTLhankkeessa. Myrkyllisiä päästöjä vähentävää biodieseliä pyritään käyttämään erityisesti niiden katukuilujen bussiliikenteessä, joissa EU:n ilmanlaadulle asettamat raja-arvot ylittyvät. Mikäli kokeilu vahvistaa myrkyllisten päästöjen vähenevän oleellisesti ja polttoaineen kustannukset ovat edulliset suhteessa saavutettaviin hyötyihin ja polttoaineen raaka-aineen tuotanto voidaan ratkaista kestävällä tavalla, HKL ryhtyy toimenpiteisiin toisen sukupolven biodieselin osuuden kasvattamiseksi olennaisesti fossiilisen dieselpolttoaineen kustannuksella. || ||<br />
|---<br />
| 50 || Helsingin kaupungin energiapoliittisia linjauksia || 42 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Maakaasu ja biokaasu polttoaineena: HKL selvittää tutkimuksin maakaasubusseista todellisessa ajossa syntyvät päästöt dieselbusseihin verrattuna. Mikäli todelliset päästöt antavat perusteen, HKL hyvittää maakaasusta käyttövoimana bussiliikenteen kilpailuttamisessa käytettävässä laatupisteytyksessä. HKL yhteistyössä YTV:n, Gasumin ja bussiliikennöitsijöiden kanssa edistää maa- ja biokaasun uuden tankkausinfrastruktuurin syntymistä siten, että maaja biokaasun tankkauspiste on tarvittaessa saatavissa ainakin liikennöitsijöiden keskeisimmille varikoille kohtuullisin kustannuksin. HKL neuvottelee Gasumin, Helsingin Veden ja YTV:n kanssa biokaasun hyödyntämiseksi joukkoliikenteessä. || ||<br />
|---<br />
| 51 || Helsingin kaupungin energiapoliittisia linjauksia || 43 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Bioetanoli polttoaineena: HKL seuraa bioetanolin käytöstä saatavia kokemuksia Ruotsissa. Mikäli bioetanoli osoittautuu ympäristön kannalta elinkaarivaikutustensa osalta muita biopolttoaineita (esim. biodiesel) paremmaksi ja bioetanolia käyttäviä moottoreita tulee markkinoille useilta valmistajilta, harkitaan bioetanolin soveltuvuutta Helsingin joukkoliikenteeseen. || ||<br />
|---<br />
| 52 || Helsingin kaupungin energiapoliittisia linjauksia || 43 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Vety polttoaineena: HKL seuraa vetybussien teknologian kehitystä, vedyn valmistusteknologioiden kehitystä sekä Pekingin olympialaisten hytaanibussikokeilua. || ||<br />
|---<br />
| 53 || Helsingin kaupungin energiapoliittisia linjauksia || 43 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Hybridibussit: HKL yhteistyössä liikennöitsijöiden kanssa käynnistää pilotin muutamien hybridibussien liikennöinnistä vuoden 2008 aikana. Pilotista saatavien päästöjä, kustannuksia ja käytettävyyttä koskevien kokemusten perusteella päätetään jatkotoimenpiteistä. || ||<br />
|---<br />
| 54 || Helsingin kaupungin energiapoliittisia linjauksia || 43 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Johdinautot: HKL laatii esiselvityksen nykyaikaisen johdinautojärjestelmän toteuttavuudesta, hyödyistä ja kustannuksista Helsingissä. Selvityksen perusteella päätetään mahdollisista jatkotoimenpiteistä. || ||<br />
|---<br />
| 55 || Helsingin kaupungin strategiaohjelma 2013-2016 || 15 || Ilmastonmuutoksen hillintä || Rakennetaan kumppanuuksia elinkeinoelämän kanssa siten, että yritysten kilpailukyky ja ympäristövastuullisuus vahvistuvat ja syntyy uutta innovatiivista liiketoimintaa esimerkiksi älykkäiden teknologioiden, resurssitehokkuuden ja hiilineutraalien tuotteiden ympärille. || ||<br />
|---<br />
| 56 || Helsingin kaupungin strategiaohjelma 2013-2016 || 15 || Ilmastonmuutoksen hillintä || Edistetään uudenlaisten ympäristö- ja energiateknologioiden kehittämistä ja käyttöönottoa yhteistyössä yritysten sekä tutkimus- ja kehittämistahojen kanssa. || ||<br />
|---<br />
| 57 || Helsingin kaupungin strategiaohjelma 2013-2016 || 15 || Ilmastonmuutoksen hillintä || Itämerihaasteen toimenpideohjelma uudistetaan. || ||<br />
|---<br />
| 58 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Joukkoliikennettä kehitetään mm. HSL:n runkolinjastosuunnitelman ja poikittaisen joukkoliikenteen kehittämissuunnitelman mukaisesti. || ||<br />
|---<br />
| 59 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Joukkoliikenteen liityntäpysäköintiä ja terminaalien toimivuutta parannetaan. || ||<br />
|---<br />
| 60 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Helsingin kaupungin alueella tarvittavat joukkoliikenteen etuusjärjestelyt (mm. joukkoliikennekaistat ja liikennevaloetuudet) toteutetaan. || ||<br />
|---<br />
| 61 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Jalankulku- ja pyöräilyverkostojen jatkuvuutta ja turvallisuutta parannetaan. Kaupunkipyöräverkko rakennetaan joukkoliikenteen osaksi ja lisätään tietoisuutta kevyen liikenteen terveys- ja ympäristöhyödyistä. || ||<br />
|---<br />
| 62 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Edistetään kattavan sähköautojen latausverkoston luomista. || ||<br />
|---<br />
| 63 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Priorisoidaan joukkoliikenteen, kävelyn tai pyöräilyn osuutta nostavat liikennehankkeita. || ||<br />
|---<br />
| 64 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Toteutetaan Pyöräilynedistämisohjelman suosituksia. || ||<br />
|---<br />
| 65 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Perustetaan poikkihallinnollinen ratikkaprojekti kehittämään raitioliikennettä ja valmistautumaan sen laajentamiseen. || ||<br />
|---<br />
| 66 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Pyritään aikaistamaan raide-Jokerin toteutusta. || ||<br />
|---<br />
| 67 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Uuden yleiskaavan tavoitteeksi asetetaan energiatehokas kaupunkirakenne. || ||<br />
|---<br />
| 68 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Asemakaavoituksella turvataan energiatehokkaan rakentamisen toteuttamisedellytykset. || ||<br />
|---<br />
| 69 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Yleisten alueiden rakentamisen ja ylläpidon energia- ja materiaalitehokkuutta parannetaan mm. tehostamalla ylijäämämassojen hyödyntämistä ja purkumateriaalien uudelleen käyttöä ja kierrätystä. || ||<br />
|---<br />
| 70 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Elinkeinoelämän ja kaupungin kumppanuuksia edistetään siten, että ympäristövastuullisuus vahvistuu ja syntyy innovatiivista ja uutta liiketoimintaa älykkäiden teknologioiden, resurssitehokkaiden palveluiden ja hiilineutraalien tuotteiden ympärille. || ||<br />
|---<br />
| 71 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Kaupunki edistää uudenlaisten ympäristö- ja energiateknologioiden käyttöönottoa rakentamisen kehittämishankkeissa. || ||<br />
|---<br />
| 72 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Kalasatamasta luodaan älykkään kaupunkirakentamisen mallialue. || ||<br />
|---<br />
| 73 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Energiantuotannon päästöjä vähennetään 20 % vuoteen 2020 mennessä vuoden 1990 tasosta. || ||<br />
|---<br />
| 74 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Helsingin Energian sähkön ja lämmön tuotantorakennetta muutetaan siten, ettäuusiutuvien energialähteiden osuus on vuoteen 2020 mennessä noin 20 % || ||<br />
|---<br />
| 75 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Kaupunginvaltuuston käsittelyyn tuodaan vuonna 2015 päätösehdotus siitä, rakennetaanko Vuosaareen uusi biopolttoainetta hyödyntävä voimalaitos vai toteutetaanko Hanasaaren ja Salmisaaren voimalaitoksilla muutosinvestoinnit biopolttoaineen osuuden kasvattamiseksi. || ||<br />
|---<br />
| 76 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Helsinki toteuttaa selvityksen vaihtoehtoisista toteuttamistavoista kustannusarvioineen päästöjen vähentämisen vuoden 2013 loppuun mennessä. || ||<br />
|---<br />
| 77 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Parannetaan tulva- ja hulevesien sekä lumen hallintaa sekä sään ääri-ilmiöihin varautumista. Tarpeelliset tilavaraukset otetaan huomioon kaupunkisuunnittelussa. || ||<br />
|---<br />
| 78 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Monipuolisella kasvillisuudella kompensoidaan rakennettujen alueiden tuottamia kasvihuonekaasupäästöjä. || ||<br />
|---<br />
| 79 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Kaupunki laatii tavoitteet energiansäästön lisäämiseksi energiasäästöneuvottelukunnan suositusten pohjalta. || ||<br />
|---<br />
| 80 || Helsingin kaupungin strategiaohjelma 2013-2016 || 23 || Ilmastonmuutoksen hillintä || Kaupungin luovuttamalle asuntotontille rakennettaessa edellytetään A-luokan energiatehokkuusvaatimusta. Pyritään kohti nollaenergiarakentamista. || ||<br />
|---<br />
| 81 || Helsingin kaupungin strategiaohjelma 2013-2016 || 23 || Ilmastonmuutoksen hillintä || Kaupungin oman asuntokannan peruskorjaustoiminnassa pyritään tavoitteellisesti C-energialuokkaan. || ||<br />
|---<br />
| 82 || Helsingin kaupungin strategiaohjelma 2013-2016 || 23 || Ilmastonmuutoksen hillintä || Esteettömiä asumisvaihtoehtoja lisätään täydennysrakentamisalueilla. Asuntoosakeyhtiöille tarjottavaa neuvontaa jatketaan hissiprojektin ja peruskorjausneuvonnan avulla. || ||<br />
|---<br />
|}<br />
<br />
== Perustelu == <br />
<br />
Tässä vaiheessa kysymyksen tarkastelu rajataan valikoidusta aineistosta (kts. [[Helsingin ilmastonmuutos -tiekartta]]) löytyviin tavoitteenmäärittelyihin.<br />
<br />
{{defend|#|Työtä pitäisi jatkaa kohti kvantitatiivista mallia, joka kuvaisi tärkeimmät määrälliset indikaattorit. Näitä lievevät<br />
* Hiilidioksidipäästöt sektoreittain ja päästölähteittäin esim viiden vuoden välein arvioituna 1990-2050. Tiedot tällä tarkkuudella löytynevät helposti Helsingin kaupungilta. <br />
* Sektorien kustannukset samoin jaoteltuna (ei kuitenkaan päästölähteittäin). <br />
* Toimenpiteiden määrälliset vaikutukset päästöihin ja kustannuksiin samoin jaoteltuna. <br />
* eri osa-alueiden riippuvuudet toisistaan [[:op_en:Energy balance]]-mallin mukaisina yhtälöryhminä. <br />
|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 3. lokakuuta 2014 kello 02.16 (UTC)}}<br />
<br />
== Katso myös ==<br />
<br />
* [[Helsingin ilmastonmuutos -tiekartta]]<br />
* [[Helsingin strategiset energiatehokkuus- ja ilmastotavoitteet]]<br />
* [[Helsingin ohjelmalliset energiatehokkuus- ja ilmastotoimenpiteet ja -tavoitteet]]<br />
* [[Helsingin hallintokuntien energiatehokkuus- ja ilmastotoimenpiteet ja -tavoitteet]]<br />
<br />
== Viitteet ==<br />
<br />
<references/><br />
<br />
== Kommentoi ==<br />
<br />
{{kommentointityökalu}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Helsingin_ohjelmalliset_energiatehokkuus-_ja_ilmastotoimenpiteet_ja_-tavoitteet&diff=26931Helsingin ohjelmalliset energiatehokkuus- ja ilmastotoimenpiteet ja -tavoitteet2014-10-03T12:41:53Z<p>Sharp: /* Vastaus */</p>
<hr />
<div>{{muuttuja|edistyminen=Luonnos|edistymistaulu=Kyllä}} <br />
<br />
== Kysymys ==<br />
<br />
Minkälaiset tulisi olla Helsingin kaupungin ohjelmalliset toimenpiteet ja tavoitteet rakennusten energiatehokkuuden, ilmastonmuutoksen hillinnän ja ilmastonmuutokseen sopeutumisen suhteen?<br />
<br />
'''Rajaus'''<br />
<br />
Tässä vaiheessa kysymyksen tarkastelu rajataan valikoidusta aineistosta (kts. [[Helsingin ilmastonmuutos -tiekartta]]) löytyviin toimenpiteisiin ja tavoitteenmäärittelyihin.<br />
<br />
== Vastaus ==<br />
<br />
* ''Aineistoista etsitään rakennusten energiatehokkuuteen, ilmastonmuutoksen hillintään ja ilmastonmuutokseen sopeutumiseen liittyviä sekä toimenpiteitä (päätöksiä tai pyrkimyksiä tehdä jotain) että tavoitteenmäärittelyjä (kuvauksia siitä minkälaisia muutoksia halutaan tapahtuvan) <br />
* ''Lisäksi huomioidaan myös muut aiheen kannalta oleelliset asiat, jotka eivät selvästi ole tunnistettavissa toimenpiteiksi tai tavoitteiksi<br />
* ''Löydetyt toimenpiteet ja tavoitteet (ja mahdolliset muut oleelliset asiat) nimetään tähän. Ryhmittely esim. tausta-aineistoittain ja/tai aiheittain ( i) rakennusten energiatehokkuus, ii) ilmastonmuutoksen hillintä, iii) ilmastonmuutokseen sopeutuminen)<br />
* ''Kunkin toimenpiteen tai tavoitteen (tai muun) kohdalle merkitään myös missä kohdassa se esiintyy tausta-aineistossa alkuperäisaineiston nimi + sivu(t) tai välilehti/rivi(t)/sara(k)ke(et)<br />
* ''Lisäksi kunkin toimenpiteen tai tavoitteen (tai muun) osalta merkitään mihin strategiatason tavoitteeseen/tavoitteisiin se liittyy ja missä suhteessa: a) tukee, b) on ristiriidassa, c) ei liity (nimettyihin strategiatason tavoitteisiin), d) muu<br />
<br />
<br />
<br />
{| class="wikitable sortable" {{prettytable}}<br />
|+'''Ohjelmatason tavoitteenmäärittelyt<br />
! Nro !! Aineisto !! Sivunumero !! Osa-alue !! Tavoite !! Relaatio !! Strategiatason tavoite<br />
|---<br />
| 1 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 2, 79 || Ilmastonmuutoksen hillintä || Helsingin kasvihuonekaasupäästöjä vähennetään vähintään 20 % vuoden 1990 tasolta vuoteen 2020 mennessä. || ||<br />
|---<br />
| 2 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 78 || Ilmastonmuutoksen hillintä || Helsinki tavoittelee hiilineutraalia tulevaisuutta vuoteen 2050 mennessä || ||<br />
|---<br />
| 3 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 78, 79 || Ilmastonmuutoksen hillintä || 2016 kiinteä 9 % säästötavoite vuoden 2005 kaupunkikonsernin kokonaiskulutuksesta ja energian loppukäytön tehokkuus on parantunut 9 % || || <br />
|---<br />
| 4 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 79 || Ilmastonmuutoksen hillintä || 20 % energian tuotannosta uusiutuvista lähteistä || ||<br />
|---<br />
| 5 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 79 || Ilmastonmuutoksen hillintä || 2030 päästövähennys 39 %, 4,3t (/asukas) ja liikenteen päästövähennys 20 % || ||<br />
|---<br />
| 6 || Helsingin 30 prosentin päästövähennysselvitys || 2 || Ilmastonmuutoksen hillintä || Helsingin strategiaohjelman mukaisesti vähennetään kaupunkialueen hiilidioksidipäästöjä 30 % vuoteen 2020 mennessä vuoden 1990 tasosta || ||<br />
|---<br />
| 7 || Helsingin 30 prosentin päästövähennysselvitys || 2 || Ilmastonmuutoksen hillintä || Helsinki toimii aktiivisesti ilmastonmuutoksen torjunnassa ja tukee energian tuotantoon ja kulutukseen liittyvien päästöjä vähentävien innovatiivisten ratkaisujen kehittämistä. || ||<br />
|---<br />
| 8 || Helsingin 30 prosentin päästövähennysselvitys || 2 || Ilmastonmuutoksen hillintä || Energiantuotannon päästöjä vähennetään 20 % vuoteen 2020 mennessä. || ||<br />
|---<br />
| 9 || Helsingin 30 prosentin päästövähennysselvitys || 2 || Ilmaston uutoksen hillintä || 20 % energiantuotannosta uusiuvutista energianlähteistä 2020 || Sama kuin || Tavoite 4<br />
|}<br />
<br />
<br />
{| class="wikitable sortable" {{prettytable}}<br />
|+'''Ohjelmatason toimenpiteet<br />
! Nro !! Aineisto !! Sivunumero !! Osa-alue !! Toimenpide !! Relaatio !! Strategiatason tavoite<br />
|---<br />
| 1 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 2 || Ilmastonmuutoksen hillintä || Kaikilla virastoilla ja laitoksilla on energiansäästövelvoite vähentää vuotuista kulutusta 2 % verrattuna vuoden 2010 tasoon. || ||<br />
|---<br />
| 2 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 31 || Rakennusten energiatehokkuus || Kaavoitetaan kaupunki kokonaisuutena energiatehokkaaksi || ||<br />
|---<br />
| 3 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 33 || Rakennusen energiatehokkuus || Lisätään yhteiskäyttötiloja, jolloin pienempi määrä asuinneliöitä riittää henkeä kohti || ||<br />
|---<br />
| 4 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 34 || Rakennusten energiatehokkuus || Varmistetaan, että rakennusten energiaa säästävät järjestelmät toimivat || ||<br />
|---<br />
| 5 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 35 || Ilmastonmuutoksen hillintä || Mitataan energiankulutus vuokra-asunnoissa ja laskutetaan asukkaita käytön mukaan || ||<br />
|---<br />
| 6 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 37 || Rakennusten energiatehokkuus || Kuvataan kaupunki lämpökameralla lämpöhukkatalojen ja tiiviiden talojen erottamiseksi || ||<br />
|---<br />
| 7 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 38 || Rakennusten energiatehokkuus || Peruskorjataan vanhat talot energiatehokkaiksi || ||<br />
|---<br />
| 8 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 40 || Rakennusten energiatehokkuus || Perustetaan rahasto, jolla rahoitetaan energiaviisaita korjauksia || ||<br />
|---<br />
| 9 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 41 || Ilmastonmuutoksen hillintä || Hinnoitellaan kaukolämpö niin, että paljon kuluttavat maksavat energiasta enemmän || ||<br />
|---<br />
| 10 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 42 || Rakennusten energiatehokkuus || Peritään energiatehokkaista rakennuksista vähemmän kiinteistöveroa, kuin tehottomista || ||<br />
|---<br />
| 11 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 43 || Rakennusten energiatehokkuus || Kannustetaan rakennutajia energiatehokkaisiin vaihtoehtoihin rakennusvaiheessa || ||<br />
|---<br />
| 12 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 46 || Ilmastonmuutoksen hillintä || Energiaviisaiden teknologioiden pilotointi- ja demonstraatiohankkeita toteutetaan aiempaa voimakkaammin kaupungin vetäminä tai tukemina. Tuloksia esitellään laajemmin. || ||<br />
|---<br />
| 13 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 47 || Ilmastonmuutoksen hillintä || Kaupunki myöntää lainantakuita energiatehokasta vaihtoehtoa ostamassa oleville. || ||<br />
|---<br />
| 14 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 48 || Ilmastonmuutoksen hillintä || Tehdään korttelikohtaisia energiankulutuksen katselmointeja, joiden avulla voidaan tavoittaa kaikki kaupungin kotitaloudet || ||<br />
|---<br />
| 15 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 50 || Ilmastonmuutoksen hillintä || Hinnoitellaan sähkö energian säästöä tukevaksi: korkeampi sähkönkulutus maksaa suhteessa enemmän || ||<br />
|---<br />
| 16 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 51 || Ilmastonmuutoksen hillintä || Järjestetään energiatehokkuuskilpailulja || ||<br />
|---<br />
| 17 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 54 || Ilmastonmuutoksen hillintä || Tehdään yhteistyötä elinkeinoelämän kanssa yritysten kannstamiseksi valitsemaan energiatehokkaita vaihtoehtoja || ||<br />
|---<br />
| 18 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 55 || Ilmastonmuutoksen hillintä || Myönnetään yrityksille energiaviisaita lainatakuita || ||<br />
|---<br />
| 19 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 56 || Ilmastonmuutoksen hillintä || Koulutetaan ekotukihenkilöitä auttamaan yritysten henkilöstöä muuttamaan toimintatapoja ympäristöystävällisemmiksi || ||<br />
|---<br />
| 20 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 57 || Ilmastonmuutoksen hillintä || Opetetaan ihmiset lapsesta sti toimimaan ympäristöystävälisesti esim. Vihreä lippu -ohjelman avulla || ||<br />
|---<br />
| 21 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 58 || Ilmastonmuutoksen hillintä || Perustetaan ilmastoverkosto hallinnon ja elinkeinoelämän väälille edistämään energiatehokkuutta || ||<br />
|---<br />
| 22 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 59 || Ilmastonmuutoksen hillintä || Julkisissa hankinnoissa suositaan energiatehokkaita vaihtoehtoja || ||<br />
|---<br />
| 23 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 62 || Ilmastonmuutoksen hillintä || Maankäytön suunnittelulla edistetään joukkoliikenteen käyttöä ja jalankulkua || ||<br />
|---<br />
| 24 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 64 || Ilmastonmuutoksen hillintä || Kehitetään pyröpysäköinnin mahdollisuuksia etenkin lisäämällä turvallisia pysäköintipaikkoja julkisen liikenteen solmukohtiin || ||<br />
|---<br />
| 25 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 66 || Ilmastonmuutoksen hillintä || Perustetaan seudullinen liikkumiskeskus, jonka avulla henkilöautoliikennettä vähennetään liikenteen ohjauksen keinoin || ||<br />
|---<br />
| 26 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 67 || Ilmastonmuutoksen hillintä || Tehdään mahdolliseksi joukkoliikenteen matkalipun maksaminen jälkikäteen joukoliikenteen houkuttelevuuden lisäämiseksi || ||<br />
|---<br />
| 27 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 68 || Ilmastonmuutoksen hillintä || Joukkoliikenteen lipputyyppeihin lisätään yhteislippu, jolla monen hengen porukka voi matkustaa halvemmalla || ||<br />
|---<br />
| 28 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 69 || Ilmastonmuutoksen hillintä || Perustetaan logistiikkakeskus, jossa kuljetukset yhtenäistetään ja siten kuljetusajoja vähennetään || ||<br />
|---<br />
| 29 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 69 || Ilmastonmuutoksen hillintä || Kannustetaan kuljetusyrityksiä energiatehokkaaseen toimintaan mm. edellyttämällä energiatehokkuussopimusta || ||<br />
|---<br />
| 30 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 71 || Ilmastonmuutoksen hillintä || Kehitetään pyöräilyn pääväyliä tekemällä niistä turvallisempia, häiriöttömiä ja suoria yhteyksiä lähtöpaikan ja määränpään välillä || ||<br />
|---<br />
| 31 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 72 || Ilmastonmuutoksen hillintä || Asennetaan keskustan alueelle sähköautojen latauspisteitä ja varataan vain niitä varten omia pysäköintipaikkoja || ||<br />
|---<br />
| 32 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 74 || Ilmastonmuutoksen hillintä || Luodaan keskustaan ympäristövyöhyke, jolle pääsee vain vähäpäästöisellä ajoneuvolla || ||<br />
|---<br />
| 33 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 75 || Ilmastonmuutoksen hillintä || Otetaan käyttöön ruuhkamaksut || ||<br />
|---<br />
| 34 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 77 || Ilmastonmuutoksen hillintä || Edistestään taloudellista ajotapaa mm. kouluttamalla ammattiajajat siihen || ||<br />
|---<br />
| 35 || Helsingin 30 prosentin päästövähennysselvitys || 18 || Rakennusten energiatehokkuus ||Kaupunki ottaa kaikessa maankäytön suunnittelussa huomioon rakennusten sijoittelun, muodon ja suuntauksen vaikutukset energiankulutukseen. || ||<br />
|---<br />
| 36 || Helsingin 30 prosentin päästövähennysselvitys || 18 || Ilmastonmuutoksen hillintä || Kaavoittaessa tehdään päästötarkastelut, jotka katsotaan energiaperäisiä päästöjä, rakentamisen materiaalivalintoja ja maankäytön muutoksista aiheutuvia päästöjä. || ||<br />
|---<br />
| 37 || Helsingin 30 prosentin päästövähennysselvitys || 18 || Ilmastonmuutoksen hillintä || Edistetään vähäpäästöistä rakentamista ohjaamalla rakennusten sijoittelua, muotoa ja suuntausta kaavoituksella, rakenta-mistapaohjeilla ja tontinluovutusehdoilla. || ||<br />
|--<br />
| 38 || Helsingin 30 prosentin päästövähennysselvitys || 20 || Rakennusten energiatehokkuus || Käynnistetään peruskorjausten yhteydessä Energiarenessanssia toteuttava kehitysohjelma. Tunnistetaan lupaavimmat alueet energiatehokkuuden parantamiselle, aktivoidaan alueiden kiinteistöjen omistajia ja asukkaita energiatehokkuuden parantamiseen ja fasilitoidaan aluekohtaisia yhteisperuskorjaushankkeita. || ||<br />
|--<br />
| 39 || Helsingin 30 prosentin päästövähennysselvitys || 20 || Rakennusten energiatehokkuus || Energiarenessanssi-toimenpide toteutetaan peruskorjaamalla lähiöitä ja kortteleita yhteisprojekteina, jolloin peruskorjausten kokonaiskustannukset alenevat. Kaupunki voi tukea peruskorjauksien investointeja omistustonttien lisärakentamisoikeuk-sien ja vuokratonttien täydennysrakentamiskorvauksien avulla. || ||<br />
|---<br />
| 40 || Helsingin 30 prosentin päästövähennysselvitys || 21 || Rakennusten energiatehokkuus || Kaupunki perustaa kannattaville energiatehokkuuskorjaushankkeille tarkoitetun rahaston. Rahaston pääomalla rahoitetaan energiatehokkuusinvestointeja. Rahoitetut hankkeet maksavat pääomalle korkoa, joka rahoitetaan energiatehokkuuden avulla saavutetuista säästöistä. Korkotuloilla voidaan rahoittaa edelleen uusia hankkeita. || ||<br />
|---<br />
| 41 || Helsingin 30 prosentin päästövähennysselvitys || 23 || Rakennusten energiatehokkuus || Suoritetaan loppuun käynnissä oleva rakennuskannan lämpökamerakuvaus ilmasta lämpöhukkarakennuksien tunnistamiseksi. Selvitetään asuinrakennuksiksi muutettavissa olevien toimitilojen määrä ja sijainnit. Julkaistaan tulokset eri tahojen hyödynnettäväksi. || ||<br />
|---<br />
| 42 || Helsingin kaupungin energiapoliittisia linjauksia || 21 || Ilmastonmuutoksen hillintä || Helsingin alueen energiantuotanto-, siirto- ja jakelujärjestelmää kehitetään yhtenä kokonaisuutena. Näin varmistetaan energian riittävä saatavuus ja häiriötön toimitus asiakkaille. Pääkaupunkiseudun energiaverkkoja tarkastellaan yhtenä laajana kokonaisuutena ja synnytetään yhteistyötä eri toimijoiden kesken. || ||<br />
|---<br />
| 43 || Helsingin kaupungin energiapoliittisia linjauksia || 21 || Ilmastonmuutoksen hillintä || Helsinki selvittää myös biopolttoaineiden lisääntyvää käyttöä kuitenkin energiantuotannon hyvän hyötysuhteen säilyttäen tulevissa voimalaitosratkaisuissa. Tämä edellyttää riittävien biopolttoaineiden varastotilojen varaamista ja liikennevaihtoehtojen selvittämistä ja huomioimista Helsingin Energian polttoainelogistiikan kannalta oleellisiin kohteisiin. || ||<br />
|---<br />
| 44 || Helsingin kaupungin energiapoliittisia linjauksia || 22 || Ilmastonmuutoksen hillintä || Helsingin kaupungin eri yksiköt kehittävät omaa energiankäyttöään tehokkaampaan ja säästävämpään suuntaan. Helsinkiläisille jaetaan energiansäästöinformaatiota, jonka tuottamiseen Helsingin Energia osaltaan myötävaikuttaa. Energiansäästödirektiivi ja sen toteutukseen tehtävät sopimukset tulevat määrittelemään käytännön toimenpiteet ja niiden vaikutusten seuraamisen. || ||<br />
|---<br />
| 45 || Helsingin kaupungin energiapoliittisia linjauksia || 23 || Ilmastonmuutokseen sopeutuminen || Helsingin Energia varautuu päästöoikeuksien niukkenemiseen ja kallistumiseen lähivuosina ja panostaa riskien torjumiseen. || ||<br />
|---<br />
| 46 || Helsingin kaupungin energiapoliittisia linjauksia || 31 || Rakennusten energiatehokkuus || Kaupungin omistamien rakennusten energiankäytön tehostaminen: 1. Panostetaan erityisesti olemassa olevan rakennuskantansa energiatehokkuuden parantamiseen korjausten sisällön ja ylläpidon tehokkuuden kautta. 2. Uudis- ja korjausrakennuskohteissa sovelletaan myös matalaenergiarakentamista tarjoten päätöksentekoon edellytykset arvioida elinkaarikustannuksia ja energiatehokkuutta perinteisten investointikustannusten lisäksi. 3. Kytketään investointikohteisiin pitkiä takuuaikoja ja energiankulutustavoitteita osana elinkaarikustannuksia. 4. Selvitetään edellytykset hankekohtaiseen erityisrahoitukseen tavoitteena, etteivät energian tehokkuusinvestoinnit vaikuta perittäviin pääomavuokriin. 5. Huolehditaan siitä, että EU-tason direktiiveihin suoraan liittyvät energiansäästösopimukset kaupungin ja valtion välillä toteutuvat. 6. Sähkön kulutukseen pyritään vaikuttamaan entistä tehokkaammin kaikin käytettävissä olevin keinoin mukaan lukien hankintojen arviointi myös elinkaarikustannusten kautta. || ||<br />
|---<br />
| 47 || Helsingin kaupungin energiapoliittisia linjauksia || 32 || Rakennusten energiatehokkuus || Koko kaupunkialueen rakennusten energiankäytön tehostaminen: 1. Lisätään tiedottamista hyviksi todetuista suunnittelu-, rakentamis- ja hankintaratkaisuista. 2. Parannetaan yleisesti rakentamiseen ja ylläpitoon liittyviä tiedonsaantimahdollisuuksia nykyisissä asiointipisteissä: rakennusvalvontavirasto, kiinteistöviraston asuntoasiainosasto, Helsingin Energia, HKRRakennuttaja ja ympäristökeskus. 3. Selvitetään mahdollisuudet muuttaa tonttien luovutus- ja vuokrausehtoja energiatehokkuus huomioonottavaksi. 4. Suunnataan investointitukia yhteistoiminnassa valtiovallan kanssa. || ||<br />
|---<br />
| 48 || Helsingin kaupungin energiapoliittisia linjauksia || 42 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Dieselbussit: HKL jatkaa tutkimusta eri dieselmoottoreiden aiheuttamista todellisista päästöistä helsinkiläisissä liikenneolosuhteissa. HKL kannustaa bussiliikennöitsijöitä ympäristön kannalta puhtaampiin moottorivalintoihin bussiliikenteen kilpailuttamisessa käytettävän laatupisteytyksen avulla. Lisäksi HKL pyrkii osaltaan vaikuttamaan, että bussin moottorin energiankulutus lisätään EU-tasolla yhdeksi standardoidusti mitattavaksi aiheeksi myrkyllisten päästöjen rinnalle. || ||<br />
|---<br />
| 49 || Helsingin kaupungin energiapoliittisia linjauksia || 42 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Biodiesel polttoaineena: HKL toimii aktiivisena osapuolena kolmivuotisessa toisen sukupolven biodieselin NExBTLhankkeessa. Myrkyllisiä päästöjä vähentävää biodieseliä pyritään käyttämään erityisesti niiden katukuilujen bussiliikenteessä, joissa EU:n ilmanlaadulle asettamat raja-arvot ylittyvät. Mikäli kokeilu vahvistaa myrkyllisten päästöjen vähenevän oleellisesti ja polttoaineen kustannukset ovat edulliset suhteessa saavutettaviin hyötyihin ja polttoaineen raaka-aineen tuotanto voidaan ratkaista kestävällä tavalla, HKL ryhtyy toimenpiteisiin toisen sukupolven biodieselin osuuden kasvattamiseksi olennaisesti fossiilisen dieselpolttoaineen kustannuksella. || ||<br />
|---<br />
| 50 || Helsingin kaupungin energiapoliittisia linjauksia || 42 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Maakaasu ja biokaasu polttoaineena: HKL selvittää tutkimuksin maakaasubusseista todellisessa ajossa syntyvät päästöt dieselbusseihin verrattuna. Mikäli todelliset päästöt antavat perusteen, HKL hyvittää maakaasusta käyttövoimana bussiliikenteen kilpailuttamisessa käytettävässä laatupisteytyksessä. HKL yhteistyössä YTV:n, Gasumin ja bussiliikennöitsijöiden kanssa edistää maa- ja biokaasun uuden tankkausinfrastruktuurin syntymistä siten, että maaja biokaasun tankkauspiste on tarvittaessa saatavissa ainakin liikennöitsijöiden keskeisimmille varikoille kohtuullisin kustannuksin. HKL neuvottelee Gasumin, Helsingin Veden ja YTV:n kanssa biokaasun hyödyntämiseksi joukkoliikenteessä. || ||<br />
|---<br />
| 51 || Helsingin kaupungin energiapoliittisia linjauksia || 43 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Bioetanoli polttoaineena: HKL seuraa bioetanolin käytöstä saatavia kokemuksia Ruotsissa. Mikäli bioetanoli osoittautuu ympäristön kannalta elinkaarivaikutustensa osalta muita biopolttoaineita (esim. biodiesel) paremmaksi ja bioetanolia käyttäviä moottoreita tulee markkinoille useilta valmistajilta, harkitaan bioetanolin soveltuvuutta Helsingin joukkoliikenteeseen. || ||<br />
|---<br />
| 52 || Helsingin kaupungin energiapoliittisia linjauksia || 43 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Vety polttoaineena: HKL seuraa vetybussien teknologian kehitystä, vedyn valmistusteknologioiden kehitystä sekä Pekingin olympialaisten hytaanibussikokeilua. || ||<br />
|---<br />
| 53 || Helsingin kaupungin energiapoliittisia linjauksia || 43 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Hybridibussit: HKL yhteistyössä liikennöitsijöiden kanssa käynnistää pilotin muutamien hybridibussien liikennöinnistä vuoden 2008 aikana. Pilotista saatavien päästöjä, kustannuksia ja käytettävyyttä koskevien kokemusten perusteella päätetään jatkotoimenpiteistä. || ||<br />
|---<br />
| 54 || Helsingin kaupungin energiapoliittisia linjauksia || 43 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Johdinautot: HKL laatii esiselvityksen nykyaikaisen johdinautojärjestelmän toteuttavuudesta, hyödyistä ja kustannuksista Helsingissä. Selvityksen perusteella päätetään mahdollisista jatkotoimenpiteistä. || ||<br />
|---<br />
| 55 || Helsingin kaupungin strategiaohjelma 2013-2016 || 15 || Ilmastonmuutoksen hillintä || Rakennetaan kumppanuuksia elinkeinoelämän kanssa siten, että yritysten kilpailukyky ja ympäristövastuullisuus vahvistuvat ja syntyy uutta innovatiivista liiketoimintaa<br />
esimerkiksi älykkäiden teknologioiden, resurssitehokkuuden ja hiilineutraalien tuotteiden ympärille. || ||<br />
|---<br />
| 56 || Helsingin kaupungin strategiaohjelma 2013-2016 || 15 || Ilmastonmuutoksen hillintä || Edistetään uudenlaisten ympäristö- ja energiateknologioiden kehittämistä ja käyttöönottoa yhteistyössä yritysten sekä tutkimus- ja kehittämistahojen kanssa. || ||<br />
|---<br />
| 57 || Helsingin kaupungin strategiaohjelma 2013-2016 || 15 || Ilmastonmuutoksen hillintä || Itämerihaasteen toimenpideohjelma uudistetaan. || ||<br />
|---<br />
| 58 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Joukkoliikennettä kehitetään mm. HSL:n runkolinjastosuunnitelman ja poikittaisen joukkoliikenteen kehittämissuunnitelman mukaisesti. || ||<br />
|---<br />
| 59 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Joukkoliikenteen liityntäpysäköintiä ja terminaalien toimivuutta parannetaan. || ||<br />
|---<br />
| 60 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Helsingin kaupungin alueella tarvittavat joukkoliikenteen etuusjärjestelyt (mm. joukkoliikennekaistat ja liikennevaloetuudet) toteutetaan. || ||<br />
|---<br />
| 61 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Jalankulku- ja pyöräilyverkostojen jatkuvuutta ja turvallisuutta parannetaan. Kaupunkipyöräverkko rakennetaan joukkoliikenteen osaksi ja lisätään tietoisuutta kevyen liikenteen terveys- ja ympäristöhyödyistä. || ||<br />
|---<br />
| 62 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Edistetään kattavan sähköautojen latausverkoston luomista. || ||<br />
|---<br />
| 63 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Priorisoidaan joukkoliikenteen, kävelyn tai pyöräilyn osuutta nostavat liikennehankkeita. || ||<br />
|---<br />
| 64 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Toteutetaan Pyöräilynedistämisohjelman suosituksia. || ||<br />
|---<br />
| 65 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Perustetaan poikkihallinnollinen ratikkaprojekti kehittämään raitioliikennettä ja valmistautumaan sen laajentamiseen. || ||<br />
|---<br />
| 66 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Pyritään aikaistamaan raide-Jokerin toteutusta. || ||<br />
|---<br />
| 67 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Uuden yleiskaavan tavoitteeksi asetetaan energiatehokas kaupunkirakenne. || ||<br />
|---<br />
| 68 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Asemakaavoituksella turvataan energiatehokkaan rakentamisen toteuttamisedellytykset. || ||<br />
|---<br />
| 69 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Yleisten alueiden rakentamisen ja ylläpidon energia- ja materiaalitehokkuutta parannetaan mm. tehostamalla ylijäämämassojen hyödyntämistä ja purkumateriaalien uudelleen käyttöä ja kierrätystä. || ||<br />
|---<br />
| 70 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Elinkeinoelämän ja kaupungin kumppanuuksia edistetään siten, että ympäristövastuullisuus vahvistuu ja syntyy innovatiivista ja uutta liiketoimintaa älykkäiden teknologioiden, resurssitehokkaiden palveluiden ja hiilineutraalien tuotteiden ympärille. || ||<br />
|---<br />
| 71 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Kaupunki edistää uudenlaisten ympäristö- ja energiateknologioiden käyttöönottoa rakentamisen kehittämishankkeissa. || ||<br />
|---<br />
| 72 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Kalasatamasta luodaan älykkään kaupunkirakentamisen mallialue. || ||<br />
|---<br />
| 73 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Energiantuotannon päästöjä vähennetään 20 % vuoteen 2020 mennessä vuoden 1990 tasosta. || ||<br />
|---<br />
| 74 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Helsingin Energian sähkön ja lämmön tuotantorakennetta muutetaan siten, ettäuusiutuvien energialähteiden osuus on vuoteen 2020 mennessä noin 20 % || ||<br />
|---<br />
| 75 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Kaupunginvaltuuston käsittelyyn tuodaan vuonna 2015 päätösehdotus siitä, rakennetaanko Vuosaareen uusi biopolttoainetta hyödyntävä voimalaitos vai toteutetaanko Hanasaaren ja Salmisaaren voimalaitoksilla muutosinvestoinnit biopolttoaineen osuuden kasvattamiseksi. || ||<br />
|---<br />
| 76 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Helsinki toteuttaa selvityksen vaihtoehtoisista toteuttamistavoista kustannusarvioineen päästöjen vähentämisen vuoden 2013 loppuun mennessä. || ||<br />
|---<br />
| 77 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Parannetaan tulva- ja hulevesien sekä lumen hallintaa sekä sään ääri-ilmiöihin varautumista. Tarpeelliset tilavaraukset otetaan huomioon kaupunkisuunnittelussa. || ||<br />
|---<br />
| 78 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Monipuolisella kasvillisuudella kompensoidaan rakennettujen alueiden tuottamia kasvihuonekaasupäästöjä. || ||<br />
|---<br />
| 79 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Kaupunki laatii tavoitteet energiansäästön lisäämiseksi energiasäästöneuvottelukunnan suositusten pohjalta. || ||<br />
|---<br />
| 80 || Helsingin kaupungin strategiaohjelma 2013-2016 || 23 || Ilmastonmuutoksen hillintä || Kaupungin luovuttamalle asuntotontille rakennettaessa edellytetään A-luokan energiatehokkuusvaatimusta. Pyritään kohti nollaenergiarakentamista. || ||<br />
|---<br />
| 81 || Helsingin kaupungin strategiaohjelma 2013-2016 || 23 || Ilmastonmuutoksen hillintä || Kaupungin oman asuntokannan peruskorjaustoiminnassa pyritään tavoitteellisesti C-energialuokkaan. || ||<br />
|---<br />
| 82 || Helsingin kaupungin strategiaohjelma 2013-2016 || 23 || Ilmastonmuutoksen hillintä || Esteettömiä asumisvaihtoehtoja lisätään täydennysrakentamisalueilla. Asuntoosakeyhtiöille tarjottavaa neuvontaa jatketaan hissiprojektin ja peruskorjausneuvonnan avulla. || ||<br />
|---<br />
|}<br />
<br />
== Perustelu == <br />
<br />
Tässä vaiheessa kysymyksen tarkastelu rajataan valikoidusta aineistosta (kts. [[Helsingin ilmastonmuutos -tiekartta]]) löytyviin tavoitteenmäärittelyihin.<br />
<br />
{{defend|#|Työtä pitäisi jatkaa kohti kvantitatiivista mallia, joka kuvaisi tärkeimmät määrälliset indikaattorit. Näitä lievevät<br />
* Hiilidioksidipäästöt sektoreittain ja päästölähteittäin esim viiden vuoden välein arvioituna 1990-2050. Tiedot tällä tarkkuudella löytynevät helposti Helsingin kaupungilta. <br />
* Sektorien kustannukset samoin jaoteltuna (ei kuitenkaan päästölähteittäin). <br />
* Toimenpiteiden määrälliset vaikutukset päästöihin ja kustannuksiin samoin jaoteltuna. <br />
* eri osa-alueiden riippuvuudet toisistaan [[:op_en:Energy balance]]-mallin mukaisina yhtälöryhminä. <br />
|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 3. lokakuuta 2014 kello 02.16 (UTC)}}<br />
<br />
== Katso myös ==<br />
<br />
* [[Helsingin ilmastonmuutos -tiekartta]]<br />
* [[Helsingin strategiset energiatehokkuus- ja ilmastotavoitteet]]<br />
* [[Helsingin ohjelmalliset energiatehokkuus- ja ilmastotoimenpiteet ja -tavoitteet]]<br />
* [[Helsingin hallintokuntien energiatehokkuus- ja ilmastotoimenpiteet ja -tavoitteet]]<br />
<br />
== Viitteet ==<br />
<br />
<references/><br />
<br />
== Kommentoi ==<br />
<br />
{{kommentointityökalu}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Helsingin_ohjelmalliset_energiatehokkuus-_ja_ilmastotoimenpiteet_ja_-tavoitteet&diff=26930Helsingin ohjelmalliset energiatehokkuus- ja ilmastotoimenpiteet ja -tavoitteet2014-10-03T12:40:53Z<p>Sharp: Lisätty kohdat 55 -- 82</p>
<hr />
<div>{{muuttuja|edistyminen=Luonnos|edistymistaulu=Kyllä}} <br />
<br />
== Kysymys ==<br />
<br />
Minkälaiset tulisi olla Helsingin kaupungin ohjelmalliset toimenpiteet ja tavoitteet rakennusten energiatehokkuuden, ilmastonmuutoksen hillinnän ja ilmastonmuutokseen sopeutumisen suhteen?<br />
<br />
'''Rajaus'''<br />
<br />
Tässä vaiheessa kysymyksen tarkastelu rajataan valikoidusta aineistosta (kts. [[Helsingin ilmastonmuutos -tiekartta]]) löytyviin toimenpiteisiin ja tavoitteenmäärittelyihin.<br />
<br />
== Vastaus ==<br />
<br />
* ''Aineistoista etsitään rakennusten energiatehokkuuteen, ilmastonmuutoksen hillintään ja ilmastonmuutokseen sopeutumiseen liittyviä sekä toimenpiteitä (päätöksiä tai pyrkimyksiä tehdä jotain) että tavoitteenmäärittelyjä (kuvauksia siitä minkälaisia muutoksia halutaan tapahtuvan) <br />
* ''Lisäksi huomioidaan myös muut aiheen kannalta oleelliset asiat, jotka eivät selvästi ole tunnistettavissa toimenpiteiksi tai tavoitteiksi<br />
* ''Löydetyt toimenpiteet ja tavoitteet (ja mahdolliset muut oleelliset asiat) nimetään tähän. Ryhmittely esim. tausta-aineistoittain ja/tai aiheittain ( i) rakennusten energiatehokkuus, ii) ilmastonmuutoksen hillintä, iii) ilmastonmuutokseen sopeutuminen)<br />
* ''Kunkin toimenpiteen tai tavoitteen (tai muun) kohdalle merkitään myös missä kohdassa se esiintyy tausta-aineistossa alkuperäisaineiston nimi + sivu(t) tai välilehti/rivi(t)/sara(k)ke(et)<br />
* ''Lisäksi kunkin toimenpiteen tai tavoitteen (tai muun) osalta merkitään mihin strategiatason tavoitteeseen/tavoitteisiin se liittyy ja missä suhteessa: a) tukee, b) on ristiriidassa, c) ei liity (nimettyihin strategiatason tavoitteisiin), d) muu<br />
<br />
<br />
<br />
{| class="wikitable sortable" {{prettytable}}<br />
|+'''Ohjelmatason tavoitteenmäärittelyt<br />
! Nro !! Aineisto !! Sivunumero !! Osa-alue !! Tavoite !! Relaatio !! Strategiatason tavoite<br />
|---<br />
| 1 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 2, 79 || Ilmastonmuutoksen hillintä || Helsingin kasvihuonekaasupäästöjä vähennetään vähintään 20 % vuoden 1990 tasolta vuoteen 2020 mennessä. || ||<br />
|---<br />
| 2 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 78 || Ilmastonmuutoksen hillintä || Helsinki tavoittelee hiilineutraalia tulevaisuutta vuoteen 2050 mennessä || ||<br />
|---<br />
| 3 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 78, 79 || Ilmastonmuutoksen hillintä || 2016 kiinteä 9 % säästötavoite vuoden 2005 kaupunkikonsernin kokonaiskulutuksesta ja energian loppukäytön tehokkuus on parantunut 9 % || || <br />
|---<br />
| 4 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 79 || Ilmastonmuutoksen hillintä || 20 % energian tuotannosta uusiutuvista lähteistä || ||<br />
|---<br />
| 5 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 79 || Ilmastonmuutoksen hillintä || 2030 päästövähennys 39 %, 4,3t (/asukas) ja liikenteen päästövähennys 20 % || ||<br />
|---<br />
| 6 || Helsingin 30 prosentin päästövähennysselvitys || 2 || Ilmastonmuutoksen hillintä || Helsingin strategiaohjelman mukaisesti vähennetään kaupunkialueen hiilidioksidipäästöjä 30 % vuoteen 2020 mennessä vuoden 1990 tasosta || ||<br />
|---<br />
| 7 || Helsingin 30 prosentin päästövähennysselvitys || 2 || Ilmastonmuutoksen hillintä || Helsinki toimii aktiivisesti ilmastonmuutoksen torjunnassa ja tukee energian tuotantoon ja kulutukseen liittyvien päästöjä vähentävien innovatiivisten ratkaisujen kehittämistä. || ||<br />
|---<br />
| 8 || Helsingin 30 prosentin päästövähennysselvitys || 2 || Ilmastonmuutoksen hillintä || Energiantuotannon päästöjä vähennetään 20 % vuoteen 2020 mennessä. || ||<br />
|---<br />
| 9 || Helsingin 30 prosentin päästövähennysselvitys || 2 || Ilmaston uutoksen hillintä || 20 % energiantuotannosta uusiuvutista energianlähteistä 2020 || Sama kuin || Tavoite 4<br />
|}<br />
<br />
<br />
{| class="wikitable sortable" {{prettytable}}<br />
|+'''Ohjelmatason toimenpiteet<br />
! Nro !! Aineisto !! Sivunumero !! Osa-alue !! Toimenpide !! Relaatio !! Strategiatason tavoite<br />
|---<br />
| 1 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 2 || Ilmastonmuutoksen hillintä || Kaikilla virastoilla ja laitoksilla on energiansäästövelvoite vähentää vuotuista kulutusta 2 % verrattuna vuoden 2010 tasoon. || ||<br />
|---<br />
| 2 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 31 || Rakennusten energiatehokkuus || Kaavoitetaan kaupunki kokonaisuutena energiatehokkaaksi || ||<br />
|---<br />
| 3 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 33 || Rakennusen energiatehokkuus || Lisätään yhteiskäyttötiloja, jolloin pienempi määrä asuinneliöitä riittää henkeä kohti || ||<br />
|---<br />
| 4 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 34 || Rakennusten energiatehokkuus || Varmistetaan, että rakennusten energiaa säästävät järjestelmät toimivat || ||<br />
|---<br />
| 5 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 35 || Ilmastonmuutoksen hillintä || Mitataan energiankulutus vuokra-asunnoissa ja laskutetaan asukkaita käytön mukaan || ||<br />
|---<br />
| 6 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 37 || Rakennusten energiatehokkuus || Kuvataan kaupunki lämpökameralla lämpöhukkatalojen ja tiiviiden talojen erottamiseksi || ||<br />
|---<br />
| 7 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 38 || Rakennusten energiatehokkuus || Peruskorjataan vanhat talot energiatehokkaiksi || ||<br />
|---<br />
| 8 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 40 || Rakennusten energiatehokkuus || Perustetaan rahasto, jolla rahoitetaan energiaviisaita korjauksia || ||<br />
|---<br />
| 9 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 41 || Ilmastonmuutoksen hillintä || Hinnoitellaan kaukolämpö niin, että paljon kuluttavat maksavat energiasta enemmän || ||<br />
|---<br />
| 10 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 42 || Rakennusten energiatehokkuus || Peritään energiatehokkaista rakennuksista vähemmän kiinteistöveroa, kuin tehottomista || ||<br />
|---<br />
| 11 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 43 || Rakennusten energiatehokkuus || Kannustetaan rakennutajia energiatehokkaisiin vaihtoehtoihin rakennusvaiheessa || ||<br />
|---<br />
| 12 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 46 || Ilmastonmuutoksen hillintä || Energiaviisaiden teknologioiden pilotointi- ja demonstraatiohankkeita toteutetaan aiempaa voimakkaammin kaupungin vetäminä tai tukemina. Tuloksia esitellään laajemmin. || ||<br />
|---<br />
| 13 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 47 || Ilmastonmuutoksen hillintä || Kaupunki myöntää lainantakuita energiatehokasta vaihtoehtoa ostamassa oleville. || ||<br />
|---<br />
| 14 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 48 || Ilmastonmuutoksen hillintä || Tehdään korttelikohtaisia energiankulutuksen katselmointeja, joiden avulla voidaan tavoittaa kaikki kaupungin kotitaloudet || ||<br />
|---<br />
| 15 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 50 || Ilmastonmuutoksen hillintä || Hinnoitellaan sähkö energian säästöä tukevaksi: korkeampi sähkönkulutus maksaa suhteessa enemmän || ||<br />
|---<br />
| 16 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 51 || Ilmastonmuutoksen hillintä || Järjestetään energiatehokkuuskilpailulja || ||<br />
|---<br />
| 17 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 54 || Ilmastonmuutoksen hillintä || Tehdään yhteistyötä elinkeinoelämän kanssa yritysten kannstamiseksi valitsemaan energiatehokkaita vaihtoehtoja || ||<br />
|---<br />
| 18 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 55 || Ilmastonmuutoksen hillintä || Myönnetään yrityksille energiaviisaita lainatakuita || ||<br />
|---<br />
| 19 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 56 || Ilmastonmuutoksen hillintä || Koulutetaan ekotukihenkilöitä auttamaan yritysten henkilöstöä muuttamaan toimintatapoja ympäristöystävällisemmiksi || ||<br />
|---<br />
| 20 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 57 || Ilmastonmuutoksen hillintä || Opetetaan ihmiset lapsesta sti toimimaan ympäristöystävälisesti esim. Vihreä lippu -ohjelman avulla || ||<br />
|---<br />
| 21 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 58 || Ilmastonmuutoksen hillintä || Perustetaan ilmastoverkosto hallinnon ja elinkeinoelämän väälille edistämään energiatehokkuutta || ||<br />
|---<br />
| 22 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 59 || Ilmastonmuutoksen hillintä || Julkisissa hankinnoissa suositaan energiatehokkaita vaihtoehtoja || ||<br />
|---<br />
| 23 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 62 || Ilmastonmuutoksen hillintä || Maankäytön suunnittelulla edistetään joukkoliikenteen käyttöä ja jalankulkua || ||<br />
|---<br />
| 24 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 64 || Ilmastonmuutoksen hillintä || Kehitetään pyröpysäköinnin mahdollisuuksia etenkin lisäämällä turvallisia pysäköintipaikkoja julkisen liikenteen solmukohtiin || ||<br />
|---<br />
| 25 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 66 || Ilmastonmuutoksen hillintä || Perustetaan seudullinen liikkumiskeskus, jonka avulla henkilöautoliikennettä vähennetään liikenteen ohjauksen keinoin || ||<br />
|---<br />
| 26 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 67 || Ilmastonmuutoksen hillintä || Tehdään mahdolliseksi joukkoliikenteen matkalipun maksaminen jälkikäteen joukoliikenteen houkuttelevuuden lisäämiseksi || ||<br />
|---<br />
| 27 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 68 || Ilmastonmuutoksen hillintä || Joukkoliikenteen lipputyyppeihin lisätään yhteislippu, jolla monen hengen porukka voi matkustaa halvemmalla || ||<br />
|---<br />
| 28 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 69 || Ilmastonmuutoksen hillintä || Perustetaan logistiikkakeskus, jossa kuljetukset yhtenäistetään ja siten kuljetusajoja vähennetään || ||<br />
|---<br />
| 29 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 69 || Ilmastonmuutoksen hillintä || Kannustetaan kuljetusyrityksiä energiatehokkaaseen toimintaan mm. edellyttämällä energiatehokkuussopimusta || ||<br />
|---<br />
| 30 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 71 || Ilmastonmuutoksen hillintä || Kehitetään pyöräilyn pääväyliä tekemällä niistä turvallisempia, häiriöttömiä ja suoria yhteyksiä lähtöpaikan ja määränpään välillä || ||<br />
|---<br />
| 31 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 72 || Ilmastonmuutoksen hillintä || Asennetaan keskustan alueelle sähköautojen latauspisteitä ja varataan vain niitä varten omia pysäköintipaikkoja || ||<br />
|---<br />
| 32 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 74 || Ilmastonmuutoksen hillintä || Luodaan keskustaan ympäristövyöhyke, jolle pääsee vain vähäpäästöisellä ajoneuvolla || ||<br />
|---<br />
| 33 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 75 || Ilmastonmuutoksen hillintä || Otetaan käyttöön ruuhkamaksut || ||<br />
|---<br />
| 34 || Helsingin parhaat energiatehokkuuskäytännöt -työryhmän loppuraportti 2011 || 77 || Ilmastonmuutoksen hillintä || Edistestään taloudellista ajotapaa mm. kouluttamalla ammattiajajat siihen || ||<br />
|---<br />
| 35 || Helsingin 30 prosentin päästövähennysselvitys || 18 || Rakennusten energiatehokkuus ||Kaupunki ottaa kaikessa maankäytön suunnittelussa huomioon rakennusten sijoittelun, muodon ja suuntauksen vaikutukset energiankulutukseen. || ||<br />
|---<br />
| 36 || Helsingin 30 prosentin päästövähennysselvitys || 18 || Ilmastonmuutoksen hillintä || Kaavoittaessa tehdään päästötarkastelut, jotka katsotaan energiaperäisiä päästöjä, rakentamisen materiaalivalintoja ja maankäytön muutoksista aiheutuvia päästöjä. || ||<br />
|---<br />
| 37 || Helsingin 30 prosentin päästövähennysselvitys || 18 || Ilmastonmuutoksen hillintä || Edistetään vähäpäästöistä rakentamista ohjaamalla rakennusten sijoittelua, muotoa ja suuntausta kaavoituksella, rakenta-mistapaohjeilla ja tontinluovutusehdoilla. || ||<br />
|--<br />
| 38 || Helsingin 30 prosentin päästövähennysselvitys || 20 || Rakennusten energiatehokkuus || Käynnistetään peruskorjausten yhteydessä Energiarenessanssia toteuttava kehitysohjelma. Tunnistetaan lupaavimmat alueet energiatehokkuuden parantamiselle, aktivoidaan alueiden kiinteistöjen omistajia ja asukkaita energiatehokkuuden parantamiseen ja fasilitoidaan aluekohtaisia yhteisperuskorjaushankkeita. || ||<br />
|--<br />
| 39 || Helsingin 30 prosentin päästövähennysselvitys || 20 || Rakennusten energiatehokkuus || Energiarenessanssi-toimenpide toteutetaan peruskorjaamalla lähiöitä ja kortteleita yhteisprojekteina, jolloin peruskorjausten kokonaiskustannukset alenevat. Kaupunki voi tukea peruskorjauksien investointeja omistustonttien lisärakentamisoikeuk-sien ja vuokratonttien täydennysrakentamiskorvauksien avulla. || ||<br />
|---<br />
| 40 || Helsingin 30 prosentin päästövähennysselvitys || 21 || Rakennusten energiatehokkuus || Kaupunki perustaa kannattaville energiatehokkuuskorjaushankkeille tarkoitetun rahaston. Rahaston pääomalla rahoitetaan energiatehokkuusinvestointeja. Rahoitetut hankkeet maksavat pääomalle korkoa, joka rahoitetaan energiatehokkuuden avulla saavutetuista säästöistä. Korkotuloilla voidaan rahoittaa edelleen uusia hankkeita. || ||<br />
|---<br />
| 41 || Helsingin 30 prosentin päästövähennysselvitys || 23 || Rakennusten energiatehokkuus || Suoritetaan loppuun käynnissä oleva rakennuskannan lämpökamerakuvaus ilmasta lämpöhukkarakennuksien tunnistamiseksi. Selvitetään asuinrakennuksiksi muutettavissa olevien toimitilojen määrä ja sijainnit. Julkaistaan tulokset eri tahojen hyödynnettäväksi. || ||<br />
|---<br />
| 42 || Helsingin kaupungin energiapoliittisia linjauksia || 21 || Ilmastonmuutoksen hillintä || Helsingin alueen energiantuotanto-, siirto- ja jakelujärjestelmää kehitetään yhtenä kokonaisuutena. Näin varmistetaan energian riittävä saatavuus ja häiriötön toimitus asiakkaille. Pääkaupunkiseudun energiaverkkoja tarkastellaan yhtenä laajana kokonaisuutena ja synnytetään yhteistyötä eri toimijoiden kesken. || ||<br />
|---<br />
| 43 || Helsingin kaupungin energiapoliittisia linjauksia || 21 || Ilmastonmuutoksen hillintä || Helsinki selvittää myös biopolttoaineiden lisääntyvää käyttöä kuitenkin energiantuotannon hyvän hyötysuhteen säilyttäen tulevissa voimalaitosratkaisuissa. Tämä edellyttää riittävien biopolttoaineiden varastotilojen varaamista ja liikennevaihtoehtojen selvittämistä ja huomioimista Helsingin Energian polttoainelogistiikan kannalta oleellisiin kohteisiin. || ||<br />
|---<br />
| 44 || Helsingin kaupungin energiapoliittisia linjauksia || 22 || Ilmastonmuutoksen hillintä || Helsingin kaupungin eri yksiköt kehittävät omaa energiankäyttöään tehokkaampaan ja säästävämpään suuntaan. Helsinkiläisille jaetaan energiansäästöinformaatiota, jonka tuottamiseen Helsingin Energia osaltaan myötävaikuttaa. Energiansäästödirektiivi ja sen toteutukseen tehtävät sopimukset tulevat määrittelemään käytännön toimenpiteet ja niiden vaikutusten seuraamisen. || ||<br />
|---<br />
| 45 || Helsingin kaupungin energiapoliittisia linjauksia || 23 || Ilmastonmuutokseen sopeutuminen || Helsingin Energia varautuu päästöoikeuksien niukkenemiseen ja kallistumiseen lähivuosina ja panostaa riskien torjumiseen. || ||<br />
|---<br />
| 46 || Helsingin kaupungin energiapoliittisia linjauksia || 31 || Rakennusten energiatehokkuus || Kaupungin omistamien rakennusten energiankäytön tehostaminen: 1. Panostetaan erityisesti olemassa olevan rakennuskantansa energiatehokkuuden parantamiseen korjausten sisällön ja ylläpidon tehokkuuden kautta. 2. Uudis- ja korjausrakennuskohteissa sovelletaan myös matalaenergiarakentamista tarjoten päätöksentekoon edellytykset arvioida elinkaarikustannuksia ja energiatehokkuutta perinteisten investointikustannusten lisäksi. 3. Kytketään investointikohteisiin pitkiä takuuaikoja ja energiankulutustavoitteita osana elinkaarikustannuksia. 4. Selvitetään edellytykset hankekohtaiseen erityisrahoitukseen tavoitteena, etteivät energian tehokkuusinvestoinnit vaikuta perittäviin pääomavuokriin. 5. Huolehditaan siitä, että EU-tason direktiiveihin suoraan liittyvät energiansäästösopimukset kaupungin ja valtion välillä toteutuvat. 6. Sähkön kulutukseen pyritään vaikuttamaan entistä tehokkaammin kaikin käytettävissä olevin keinoin mukaan lukien hankintojen arviointi myös elinkaarikustannusten kautta. || ||<br />
|---<br />
| 47 || Helsingin kaupungin energiapoliittisia linjauksia || 32 || Rakennusten energiatehokkuus || Koko kaupunkialueen rakennusten energiankäytön tehostaminen: 1. Lisätään tiedottamista hyviksi todetuista suunnittelu-, rakentamis- ja hankintaratkaisuista. 2. Parannetaan yleisesti rakentamiseen ja ylläpitoon liittyviä tiedonsaantimahdollisuuksia nykyisissä asiointipisteissä: rakennusvalvontavirasto, kiinteistöviraston asuntoasiainosasto, Helsingin Energia, HKRRakennuttaja ja ympäristökeskus. 3. Selvitetään mahdollisuudet muuttaa tonttien luovutus- ja vuokrausehtoja energiatehokkuus huomioonottavaksi. 4. Suunnataan investointitukia yhteistoiminnassa valtiovallan kanssa. || ||<br />
|---<br />
| 48 || Helsingin kaupungin energiapoliittisia linjauksia || 42 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Dieselbussit: HKL jatkaa tutkimusta eri dieselmoottoreiden aiheuttamista todellisista päästöistä helsinkiläisissä liikenneolosuhteissa. HKL kannustaa bussiliikennöitsijöitä ympäristön kannalta puhtaampiin moottorivalintoihin bussiliikenteen kilpailuttamisessa käytettävän laatupisteytyksen avulla. Lisäksi HKL pyrkii osaltaan vaikuttamaan, että bussin moottorin energiankulutus lisätään EU-tasolla yhdeksi standardoidusti mitattavaksi aiheeksi myrkyllisten päästöjen rinnalle. || ||<br />
|---<br />
| 49 || Helsingin kaupungin energiapoliittisia linjauksia || 42 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Biodiesel polttoaineena: HKL toimii aktiivisena osapuolena kolmivuotisessa toisen sukupolven biodieselin NExBTLhankkeessa. Myrkyllisiä päästöjä vähentävää biodieseliä pyritään käyttämään erityisesti niiden katukuilujen bussiliikenteessä, joissa EU:n ilmanlaadulle asettamat raja-arvot ylittyvät. Mikäli kokeilu vahvistaa myrkyllisten päästöjen vähenevän oleellisesti ja polttoaineen kustannukset ovat edulliset suhteessa saavutettaviin hyötyihin ja polttoaineen raaka-aineen tuotanto voidaan ratkaista kestävällä tavalla, HKL ryhtyy toimenpiteisiin toisen sukupolven biodieselin osuuden kasvattamiseksi olennaisesti fossiilisen dieselpolttoaineen kustannuksella. || ||<br />
|---<br />
| 50 || Helsingin kaupungin energiapoliittisia linjauksia || 42 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Maakaasu ja biokaasu polttoaineena: HKL selvittää tutkimuksin maakaasubusseista todellisessa ajossa syntyvät päästöt dieselbusseihin verrattuna. Mikäli todelliset päästöt antavat perusteen, HKL hyvittää maakaasusta käyttövoimana bussiliikenteen kilpailuttamisessa käytettävässä laatupisteytyksessä. HKL yhteistyössä YTV:n, Gasumin ja bussiliikennöitsijöiden kanssa edistää maa- ja biokaasun uuden tankkausinfrastruktuurin syntymistä siten, että maaja biokaasun tankkauspiste on tarvittaessa saatavissa ainakin liikennöitsijöiden keskeisimmille varikoille kohtuullisin kustannuksin. HKL neuvottelee Gasumin, Helsingin Veden ja YTV:n kanssa biokaasun hyödyntämiseksi joukkoliikenteessä. || ||<br />
|---<br />
| 51 || Helsingin kaupungin energiapoliittisia linjauksia || 43 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Bioetanoli polttoaineena: HKL seuraa bioetanolin käytöstä saatavia kokemuksia Ruotsissa. Mikäli bioetanoli osoittautuu ympäristön kannalta elinkaarivaikutustensa osalta muita biopolttoaineita (esim. biodiesel) paremmaksi ja bioetanolia käyttäviä moottoreita tulee markkinoille useilta valmistajilta, harkitaan bioetanolin soveltuvuutta Helsingin joukkoliikenteeseen. || ||<br />
|---<br />
| 52 || Helsingin kaupungin energiapoliittisia linjauksia || 43 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Vety polttoaineena: HKL seuraa vetybussien teknologian kehitystä, vedyn valmistusteknologioiden kehitystä sekä Pekingin olympialaisten hytaanibussikokeilua. || ||<br />
|---<br />
| 53 || Helsingin kaupungin energiapoliittisia linjauksia || 43 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Hybridibussit: HKL yhteistyössä liikennöitsijöiden kanssa käynnistää pilotin muutamien hybridibussien liikennöinnistä vuoden 2008 aikana. Pilotista saatavien päästöjä, kustannuksia ja käytettävyyttä koskevien kokemusten perusteella päätetään jatkotoimenpiteistä. || ||<br />
|---<br />
| 54 || Helsingin kaupungin energiapoliittisia linjauksia || 43 || Ilmastonmuutoksen hillintä || Bussiliikenteen energiatehokkuus, Johdinautot: HKL laatii esiselvityksen nykyaikaisen johdinautojärjestelmän toteuttavuudesta, hyödyistä ja kustannuksista Helsingissä. Selvityksen perusteella päätetään mahdollisista jatkotoimenpiteistä. || ||<br />
| 55 || Helsingin kaupungin strategiaohjelma 2013-2016 || 15 || Ilmastonmuutoksen hillintä || Rakennetaan kumppanuuksia elinkeinoelämän kanssa siten, että yritysten kilpailukyky ja ympäristövastuullisuus vahvistuvat ja syntyy uutta innovatiivista liiketoimintaa<br />
esimerkiksi älykkäiden teknologioiden, resurssitehokkuuden ja hiilineutraalien tuotteiden ympärille. || ||<br />
|---<br />
| 56 || Helsingin kaupungin strategiaohjelma 2013-2016 || 15 || Ilmastonmuutoksen hillintä || Edistetään uudenlaisten ympäristö- ja energiateknologioiden kehittämistä ja käyttöönottoa yhteistyössä yritysten sekä tutkimus- ja kehittämistahojen kanssa. || ||<br />
|---<br />
| 57 || Helsingin kaupungin strategiaohjelma 2013-2016 || 15 || Ilmastonmuutoksen hillintä || Itämerihaasteen toimenpideohjelma uudistetaan. || ||<br />
|---<br />
| 58 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Joukkoliikennettä kehitetään mm. HSL:n runkolinjastosuunnitelman ja poikittaisen joukkoliikenteen kehittämissuunnitelman mukaisesti. || ||<br />
|---<br />
| 59 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Joukkoliikenteen liityntäpysäköintiä ja terminaalien toimivuutta parannetaan. || ||<br />
|---<br />
| 60 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Helsingin kaupungin alueella tarvittavat joukkoliikenteen etuusjärjestelyt (mm. joukkoliikennekaistat ja liikennevaloetuudet) toteutetaan. || ||<br />
|---<br />
| 61 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Jalankulku- ja pyöräilyverkostojen jatkuvuutta ja turvallisuutta parannetaan. Kaupunkipyöräverkko rakennetaan joukkoliikenteen osaksi ja lisätään tietoisuutta kevyen liikenteen terveys- ja ympäristöhyödyistä. || ||<br />
|---<br />
| 62 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Edistetään kattavan sähköautojen latausverkoston luomista. || ||<br />
|---<br />
| 63 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Priorisoidaan joukkoliikenteen, kävelyn tai pyöräilyn osuutta nostavat liikennehankkeita. || ||<br />
|---<br />
| 64 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Toteutetaan Pyöräilynedistämisohjelman suosituksia. || ||<br />
|---<br />
| 65 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Perustetaan poikkihallinnollinen ratikkaprojekti kehittämään raitioliikennettä ja valmistautumaan sen laajentamiseen. || ||<br />
|---<br />
| 66 || Helsingin kaupungin strategiaohjelma 2013-2016 || 19 || Ilmastonmuutoksen hillintä || Pyritään aikaistamaan raide-Jokerin toteutusta. || ||<br />
|---<br />
| 67 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Uuden yleiskaavan tavoitteeksi asetetaan energiatehokas kaupunkirakenne. || ||<br />
|---<br />
| 68 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Asemakaavoituksella turvataan energiatehokkaan rakentamisen toteuttamisedellytykset. || ||<br />
|---<br />
| 69 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Yleisten alueiden rakentamisen ja ylläpidon energia- ja materiaalitehokkuutta parannetaan mm. tehostamalla ylijäämämassojen hyödyntämistä ja purkumateriaalien uudelleen käyttöä ja kierrätystä. || ||<br />
|---<br />
| 70 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Elinkeinoelämän ja kaupungin kumppanuuksia edistetään siten, että ympäristövastuullisuus vahvistuu ja syntyy innovatiivista ja uutta liiketoimintaa älykkäiden teknologioiden, resurssitehokkaiden palveluiden ja hiilineutraalien tuotteiden ympärille. || ||<br />
|---<br />
| 71 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Kaupunki edistää uudenlaisten ympäristö- ja energiateknologioiden käyttöönottoa rakentamisen kehittämishankkeissa. || ||<br />
|---<br />
| 72 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Kalasatamasta luodaan älykkään kaupunkirakentamisen mallialue. || ||<br />
|---<br />
| 73 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Energiantuotannon päästöjä vähennetään 20 % vuoteen 2020 mennessä vuoden 1990 tasosta. || ||<br />
|---<br />
| 74 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Helsingin Energian sähkön ja lämmön tuotantorakennetta muutetaan siten, ettäuusiutuvien energialähteiden osuus on vuoteen 2020 mennessä noin 20 % || ||<br />
|---<br />
| 75 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Kaupunginvaltuuston käsittelyyn tuodaan vuonna 2015 päätösehdotus siitä, rakennetaanko Vuosaareen uusi biopolttoainetta hyödyntävä voimalaitos vai toteutetaanko Hanasaaren ja Salmisaaren voimalaitoksilla muutosinvestoinnit biopolttoaineen osuuden kasvattamiseksi. || ||<br />
|---<br />
| 76 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Helsinki toteuttaa selvityksen vaihtoehtoisista toteuttamistavoista kustannusarvioineen päästöjen vähentämisen vuoden 2013 loppuun mennessä. || ||<br />
|---<br />
| 77 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Parannetaan tulva- ja hulevesien sekä lumen hallintaa sekä sään ääri-ilmiöihin varautumista. Tarpeelliset tilavaraukset otetaan huomioon kaupunkisuunnittelussa. || ||<br />
|---<br />
| 78 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Monipuolisella kasvillisuudella kompensoidaan rakennettujen alueiden tuottamia kasvihuonekaasupäästöjä. || ||<br />
|---<br />
| 79 || Helsingin kaupungin strategiaohjelma 2013-2016 || 21 || Ilmastonmuutoksen hillintä || Kaupunki laatii tavoitteet energiansäästön lisäämiseksi energiasäästöneuvottelukunnan suositusten pohjalta. || ||<br />
|---<br />
| 80 || Helsingin kaupungin strategiaohjelma 2013-2016 || 23 || Ilmastonmuutoksen hillintä || Kaupungin luovuttamalle asuntotontille rakennettaessa edellytetään A-luokan energiatehokkuusvaatimusta. Pyritään kohti nollaenergiarakentamista. || ||<br />
|---<br />
| 81 || Helsingin kaupungin strategiaohjelma 2013-2016 || 23 || Ilmastonmuutoksen hillintä || Kaupungin oman asuntokannan peruskorjaustoiminnassa pyritään tavoitteellisesti C-energialuokkaan. || ||<br />
|---<br />
| 82 || Helsingin kaupungin strategiaohjelma 2013-2016 || 23 || Ilmastonmuutoksen hillintä || Esteettömiä asumisvaihtoehtoja lisätään täydennysrakentamisalueilla. Asuntoosakeyhtiöille tarjottavaa neuvontaa jatketaan hissiprojektin ja peruskorjausneuvonnan avulla. || ||<br />
|---<br />
|}<br />
<br />
== Perustelu == <br />
<br />
Tässä vaiheessa kysymyksen tarkastelu rajataan valikoidusta aineistosta (kts. [[Helsingin ilmastonmuutos -tiekartta]]) löytyviin tavoitteenmäärittelyihin.<br />
<br />
{{defend|#|Työtä pitäisi jatkaa kohti kvantitatiivista mallia, joka kuvaisi tärkeimmät määrälliset indikaattorit. Näitä lievevät<br />
* Hiilidioksidipäästöt sektoreittain ja päästölähteittäin esim viiden vuoden välein arvioituna 1990-2050. Tiedot tällä tarkkuudella löytynevät helposti Helsingin kaupungilta. <br />
* Sektorien kustannukset samoin jaoteltuna (ei kuitenkaan päästölähteittäin). <br />
* Toimenpiteiden määrälliset vaikutukset päästöihin ja kustannuksiin samoin jaoteltuna. <br />
* eri osa-alueiden riippuvuudet toisistaan [[:op_en:Energy balance]]-mallin mukaisina yhtälöryhminä. <br />
|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 3. lokakuuta 2014 kello 02.16 (UTC)}}<br />
<br />
== Katso myös ==<br />
<br />
* [[Helsingin ilmastonmuutos -tiekartta]]<br />
* [[Helsingin strategiset energiatehokkuus- ja ilmastotavoitteet]]<br />
* [[Helsingin ohjelmalliset energiatehokkuus- ja ilmastotoimenpiteet ja -tavoitteet]]<br />
* [[Helsingin hallintokuntien energiatehokkuus- ja ilmastotoimenpiteet ja -tavoitteet]]<br />
<br />
== Viitteet ==<br />
<br />
<references/><br />
<br />
== Kommentoi ==<br />
<br />
{{kommentointityökalu}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=26113Kohdistamo2014-08-30T16:11:59Z<p>Sharp: </p>
<hr />
<div>{{metodi}}<br />
[[op_en:Timetracker]]<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'H2O';H2O;<br />
'Helsingin ilmastokartta';Helsingin ilmastokartta;<br />
'IEHIAS';IEHIAS;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="output" embed=1 showcode=0 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'H2O';H2O;<br />
'Helsingin ilmastokartta';Helsingin ilmastokartta;<br />
'IEHIAS';IEHIAS;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä, projekti){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
<br />
# pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
# Varoitus tulee arvosta k1 mutta tällä ei ole käytännön merkitystä. Varoitus ei ole virhe eikä toiminta keskeydy.<br />
#<br />
# pois <- subset(pois, pois > 0)<br />
# dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# # ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
#<br />
# dat on data.frame ja siksi et voi käyttää sitä vertailussa vektoriin. Sen sijaan 1:nrow(dat) tuottaa juoksevan rivinumeroinnin dat:lle. <br />
# Kirjausnro puolestaan pitää muuttaa numeroiksi, jotta sitä voi verrata rivinumeroihin. Suositeltavampi tyyli on tämä:<br />
<br />
pois <- as.numeric(levels(poistot$Kirjausnro)[poistot$Kirjausnro])<br />
dat <- dat[!1:nrow(dat) %in% pois , colnames(dat) != "Result"]<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
if (tekijä != "Kaikki") tekijä <- gsub("\\s", "", unlist(strsplit(tekijä, ","))) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
kirjausajat(alku, loppu, tekijä, projekti)<br />
<br />
<br />
#objects.store(output, kirjausajat)<br />
# Periaatteena on kaksi koodia: initiate luo funktiot, ovariablet ja muut yleiskäyttöiset oliot ja tallentaa ne serverille.<br />
# Käyttökoodi answer kutsuu noita olioita ja suorittaa niillä tapauskohtaisia toimenpiteitä. Koska tämä on tapauskohtainen<br />
# koodi, ei kannata tallentaa olioita (ethän kutsu niitä missään). Kunhan koodi on vakiintunut, kannattaa se jakaa<br />
# yleiseen ja projektikohtaiseen. Esimerkiksi tekijöiden tunnukset kannattaa ottaa funktioon parametriksi, jotta funktio<br />
# olisi yleispätevä, ja parametrin arvo kerrotaan projektikohtaisessa koodissa.<br />
</rcode><br />
<br />
<br />
<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
nro <- gsub("\\s", "", unlist(strsplit(nro, ","))) # Pilkotaan pilkusta ja poistetaan alku- ja loppuvälilyönnit<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", <br />
act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Nämä kirjaukset poistettu onnistuneesti.\n")<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}<br />
<br />
== Aikakoneen laskenta ==<br />
<br />
Tässä on siistitty ja dokumentoitu versio [[Aikakone]]en makeTimeline-funktiosta, joka ottaa sisäänsä työajan alku- ja loppuaikoja ja tuottaa aikajanan. Funktion olennainen lisäarvo on siinä, että sille voi antaa päällekkäisiä ajanjaksoja, ja se korvaa vanhemmat kirjaukset (eli ylempänä taulukossa olevat) uudemmilla, jos niiissä on päällekkäisyyksiä. Toinen lisäarvo on se, että se automaattisesti käsittelee jokaisen henkilön ajankäyttöä erikseen, mutta muiden indeksien suhteen se vain periyttää tiedot aikajanalle. Muita indeksejä voi siis käyttää tarpeen mukaan.<br />
<br />
{{comment|# |Kehityskohteita: tarvitaanko koskaan tilannetta, jossa henkilösarakkeita onkin useita? Ei liene tärkeä, vaan tarvittaessa tämä toteutetaan luomalla tämmöinen sarake etukäteen.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 15. heinäkuuta 2014 kello 08.28 (UTC)}}<br />
<br />
<rcode embed=1><br />
library(OpasnetUtils)<br />
<br />
makeTimeline2 <- function (<br />
events, # data.frame with time cols (start and end) and possibly other indices. One index may separate individuals.<br />
cols = c("Alku", "Loppu"), # Names of the start and end time columns<br />
personcol = NULL # Name of the column defining individuals, if any<br />
) {<br />
<br />
if (!is.numeric(events[cols[1]])) { # If not numeric, assume a time format.<br />
for (m in 1:2) {<br />
events[[cols[m]]] <- as.POSIXct(events[[cols[m]]], tz = "Europe/Helsinki")<br />
}<br />
}<br />
if(is.null(personcol)) { # Make a temporary column for individuals<br />
personcol <- "Persontemp"<br />
events$Persontemp <- "Temp"<br />
}<br />
<br />
out <- data.frame()<br />
<br />
for(k in as.character((unique(events[[personcol]])))) { # Look at each individual's events separately.<br />
<br />
event <- events[events[[personcol]] == k , colnames(events) != personcol]<br />
<br />
# timeline is a data.frame with all starts and ends as one timeline. <br />
# Events down in the "event" data.frame replace previous events higher in "event", if they overlap.<br />
timeline <- data.frame(Time = min(event[[cols[1]]]), Eventrow = nrow(event) + 1) # First time point<br />
<br />
for (i in 1:nrow(event)) { # Go through each row and replace the time slot in timeline with the event.<br />
<br />
temp <- data.frame(<br />
Time = event[i , cols[1]],<br />
End = event[i , cols[2]],<br />
EventrowStart = i # Eventrows are used temporarily. In the end they are replaced with all indices in event.<br />
)<br />
<br />
# Add new time points to the timeline with the event row mentioned.<br />
timeline <- merge(timeline, temp[c("Time", "EventrowStart")], all = TRUE)<br />
colnames(temp) <- c("Remove", "Time", "EventrowEnd")<br />
timeline <- merge(timeline, temp[, c("Time", "EventrowEnd")], all = TRUE)<br />
<br />
# Go through intermediate time points and replace them with the new event.<br />
for (j in 2:nrow(timeline)) {<br />
if (is.na(timeline$Eventrow[j])) {<br />
timeline$Eventrow[j] <- timeline$Eventrow[j - 1]<br />
}<br />
if (is.na(timeline$EventrowStart[j]) & is.na(timeline$EventrowEnd[j])) {<br />
timeline$EventrowStart[j] <- timeline$EventrowStart[j - 1]<br />
}<br />
}<br />
# If the Eventrow is not a start, it must be an end.<br />
timeline$Eventrow <- ifelse(!is.na(timeline$EventrowStart), timeline$EventrowStart, timeline$Eventrow)<br />
timeline <- timeline[, c("Time", "Eventrow")]<br />
}<br />
<br />
# Add one row for the last timepoint.<br />
event <- rbind(event, rep(NA, ncol(event)))<br />
event[nrow(event) , cols[1]] <- max(timeline$Time)<br />
event$Eventrow <- row(event)[ , 1]<br />
<br />
# Bring back the other indices from event.<br />
timeline <- merge(timeline, event)<br />
timeline <- timeline[order(timeline$Time), ]<br />
timeline <- timeline[!colnames(timeline) %in% c("Eventrow", cols)]<br />
<br />
if(personcol != "Persontemp") timeline[[personcol]] <- k<br />
<br />
out <- rbind(out, timeline)<br />
<br />
}<br />
# Calculate the durations of each time slot in the timeline.<br />
out$Duration <- out$Time[c(2:nrow(out), NA)] - out$Time<br />
# Remove the last duration value from each individual's timeline.<br />
temp <- out[[personcol]]<br />
out$Duration <- ifelse(temp[c(2:length(temp), NA)] != temp | 1:length(temp) == length(temp), 0, out$Duration)<br />
<br />
return(out)<br />
}<br />
<br />
events <- data.frame(<br />
Projekti = c("LVM", "LVM", "Pneumokokki"),<br />
Alku = c("2014-07-14 12:00", "2014-07-15 13:00", "2014-07-14 12:30"), <br />
Loppu = c("2014-07-14 14:00", "2014-07-15 14:15", "2014-07-15 14:00"),<br />
Person = c("Heikki", "Ville", "Ville")<br />
)<br />
<br />
dat <- makeTimeline2(events, cols = c("Alku", "Loppu"), personcol = "Person")<br />
<br />
cat("Lähtödata\n")<br />
<br />
oprint(events)<br />
<br />
cat("Aikajana. Tapahtumien kestot ovat minuutteina.\n")<br />
<br />
dat$Time <- format(dat$Time) # Convert times from POSIXct to character.<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
== Korjauskoodi ==<br />
{{tuloslinkki}}<br />
<br />
<rcode label="Korjaa kirjaukset" variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
temp <- opbase.data("op_fi3948.kirjaukset", "12911")<br />
<br />
derp <- 12993<br />
<br />
#durp <- list()<br />
for (i in derp) {<br />
durp <- opbase.data("op_fi3948.kirjaukset", as.character(i))<br />
temp <- rbind(temp, durp)<br />
}<br />
<br />
opbase.upload(<br />
temp, <br />
who = wiki_username,<br />
name = pagename,<br />
subset = "Kirjaukset"<br />
)<br />
</rcode><br />
<br />
<rcode label="Korjaa poistot" variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
temp <- opbase.data("op_fi3948.kirjauspoistot", "12760")<br />
<br />
derp <- opbase.data("op_fi3948.kirjauspoistot", "12864")<br />
<br />
temp <- rbind(temp, derp)<br />
<br />
<br />
opbase.upload(<br />
temp, <br />
who = wiki_username,<br />
name = pagename,<br />
subset = "Kirjauspoistot"<br />
)<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Hiekkalaatikko2&diff=25810Hiekkalaatikko22014-08-20T11:46:31Z<p>Sharp: </p>
<hr />
<div>[[Luokka:Hiekkalaatikko]]<br />
<br />
<rcode live=1 showcode=-1 embed=1 graphics=1><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
dat <- opbase.data("Op_fi4524", subset = 'Kysely')<br />
pois <- opbase.data("Op_fi4524", subset = 'Poistot')<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[!dat$KyselyID %in% pois , ]<br />
#dat <- dat[dat$Result != "", ]<br />
dat <- dat[dat$Kysymys == "Montako euroa on yksi QALY?", ]<br />
#ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + coord_flip())<br />
#dat <- as.vector(table(factor(dat$Result)))<br />
<br />
<br />
dat <- as.vector(dat$Result)<br />
dat <- ifelse ((grepl(";", dat)), strsplit(dat, split = "; "), (ifelse (dat == "", "Tyhjä", dat)))<br />
<br />
dat <- as.factor(unlist(dat))<br />
barplot(table(dat))<br />
<br />
<br />
#oprint(dat)<br />
#oprint(pois)<br />
<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Hiekkalaatikko2&diff=25809Hiekkalaatikko22014-08-20T11:44:23Z<p>Sharp: </p>
<hr />
<div>[[Luokka:Hiekkalaatikko]]<br />
<br />
<rcode live=1 showcode=-1 embed=1 graphics=1><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
dat <- opbase.data("Op_fi4524", subset = 'Kysely')<br />
pois <- opbase.data("Op_fi4524", subset = 'Poistot')<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[!dat$KyselyID %in% pois , ]<br />
#dat <- dat[dat$Result != "", ]<br />
dat <- dat[dat$Kysymys == "Montako euroa on yksi QALY?", ]<br />
#ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + coord_flip())<br />
#dat <- as.vector(table(factor(dat$Result)))<br />
<br />
<br />
dat <- as.vector(dat$Result)<br />
#oprint(dat)<br />
dat <- ifelse ((grepl(";", dat)), strsplit(dat, split = "; "), (ifelse (dat == "", "Tyhjä", dat)))<br />
#oprint(dat)<br />
<br />
dat <- as.factor(unlist(dat))<br />
oprint(dat)<br />
barplot(table(dat))<br />
<br />
<br />
oprint(dat)<br />
#oprint(pois)<br />
<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Hiekkalaatikko2&diff=25808Hiekkalaatikko22014-08-20T11:36:54Z<p>Sharp: </p>
<hr />
<div>[[Luokka:Hiekkalaatikko]]<br />
<br />
<rcode live=1 showcode=-1 embed=1 graphics=1><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
dat <- opbase.data("Op_fi4524", subset = 'Kysely')<br />
pois <- opbase.data("Op_fi4524", subset = 'Poistot')<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[!dat$KyselyID %in% pois , ]<br />
#dat <- dat[dat$Result != "", ]<br />
dat <- dat[dat$Kysymys == "Montako euroa on yksi QALY?", ]<br />
#ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + coord_flip())<br />
#dat <- as.vector(table(factor(dat$Result)))<br />
<br />
<br />
dat <- as.vector(dat$Result)<br />
#oprint(dat)<br />
dat <- ifelse ((grepl(";", dat)), strsplit(dat, split = "; "), (ifelse (dat == "0", "Tyhjä", dat)))<br />
#oprint(dat)<br />
<br />
dat <- as.factor(unlist(dat))<br />
barplot(table(dat))<br />
<br />
<br />
oprint(dat)<br />
#oprint(pois)<br />
<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Hiekkalaatikko2&diff=25547Hiekkalaatikko22014-08-18T20:18:27Z<p>Sharp: </p>
<hr />
<div><rcode live=1 showcode=-1 embed=1 graphics=1><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
dat <- opbase.data("Op_fi4524", subset = 'Kysely')<br />
pois <- opbase.data("Op_fi4524", subset = 'Poistot')<br />
dat <- dat[dat$Result != "", ]<br />
#dat <- dat[dat$Kysymys == "Rokotevalinta A200 B500", ]<br />
#ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + coord_flip()<br />
#dat <- as.vector(table(factor(dat$Result)))<br />
#oprint(pois)<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[!dat$KyselyID %in% pois , ]<br />
<br />
#oprint(dat[dat$Kysymys == "Rokotevalinta kommentteja", ])<br />
#oprint(dat[dat$Kysymys == "Rokotevertailu muu", ])<br />
#oprint(dat[dat$Kysymys == "Uusia kohtia ja kysymyksiä", ])<br />
<br />
<br />
oprint(dat)<br />
#oprint(pois)<br />
<br />
#hist(dat, labels=c("A","B","C","D"))<br />
#barplot(dat)<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Pneumokokkirokotekysely&diff=25531Pneumokokkirokotekysely2014-08-18T12:48:34Z<p>Sharp: </p>
<hr />
<div>{|<br />
|[[kuva:thl_logo.png]] <br />
|'''Tämä on kaikille avoin kysely rokotteiden valintaperusteista erityisesti liittyen pneumokokkirokotteeseen. <br />
Kansallisen rokotusohjelman rokote on tulossa kilpailutukseen syksyllä 2014. Voit lukea lisää rokotushankinnasta ja siihen liittyvästä päätöksenteosta sivulta [[Pneumokokkirokotteen hankinta kansalliseen rokotusohjelmaan]]. Kysely ja sivusto on Terveyden ja hyvinvoinnin laitoksen ylläpitämä.<br />
|}<br />
<rcode embed=0 label="Vastaa kyselyyn" showcode=-1 variables="<br />
name:v1|description:'''1. Ikäsi'''|type:selection|options:'';Valitse;'alle 20';alle 20;'21-30';21-30;'31-60';31-60;'yli 61';yli 61|<br />
name:v2a|description:'''2. Katso kyselyn alla olevaa taulukkoa kahden eri rokotteen hinnoista ja hyödyistä. Kumpi rokote mielestäsi pitäisi valita ja miksi?'''|type:selection|options:<br />
''; Valitse;<br />
'Rokote A halvempi'; Rokote A, koska se on hinnaltaan halvempi rokote.;<br />
'Rokote A kokonaiskustannukset'; Rokote A, koska sen kokonaiskustannukset ovat pienemmät.;<br />
'Rokote A kustannustehokkuus'; Rokote A, koska se maksaa vähemmän yhtä sairastumisen estoa kohti.;<br />
'Rokote B vaikuttavampi'; Rokote B, koska se vähentää sairastamista enemmän, rahasta ei väliä.;<br />
'Rokote B lisähinta kannattaa'; Rokote B, koska nykytilaan verrattuna kannattaa maksaa 1 kultaraha lisää sairaustapauksen estoa kohti.;<br />
'Rokote B marginaalikustannus'; Rokote B, koska rokotteeseen A verrattuna kannataa maksaa 7 kultarahaa lisää tapausta kohti.;<br />
'Muu on tärkeintä';Ei voi sanoa, koska jokin muu asia on tärkeintä. (Tarkenna alla olevaan laatikkoon)|<br />
name:v2b|description:Kommentteja tai tarkennuksia kysymykseen 2 liittyen|type:textbox|<br />
name:v3a|description:'''3. Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden elinvuoden* säästämiseen?'''|type:checkbox|options:<br />
'EVS, elintavat';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.;<br />
'EVS, ominaisuudet';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.|<br />
name:v3b|description:Terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen yli (euroa)|type:text|<br />
name:v3c|description:Mutta alle|type:text|<br />
name:v3d|description:Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat per elinvuosi halvempia kuin (euroa)|type:text|<br />
name:v4|description:'''4. Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?'''|type:checkbox|options:<br />
'Rokotukset kaikille';Tehdä rokotukset pakollisiksi kaikille.;<br />
'Rokotukset koululaisille';Vaaditaan voimassa olevat rokotukset esim. koululaisilta.;<br />
'Kannustus ja tieto';Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.;<br />
'Ilmaiset rokotukset';Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.;<br />
'Ei pidä puuttua';Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.|<br />
name:v5a|description:'''5. Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)'''|type:checkbox|options:<br />
'Kansanterveys';Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.;<br />
'Yksittäinen ihminen';Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.;<br />
'Laumasuoja';Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.;<br />
'Rahalliset kustannukset';Rokotteen hinta ja muut siitä yhteiskunnalle koituvat kustannukset.;<br />
'Kaikki yllä';Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mitkään kaksi niistä eivät riitä.|<br />
name:v5b|description:Muu, mikä?|type:textbox|<br />
name:v6|description:'''6. Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.'''|type:checkbox|options:<br />
'Kipu tai ärsytys';Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla;<br />
'Korkea kuume';Korkea kuume;<br />
'Kouristukset';Kouristukset;<br />
'Hengityskatkos';Tilapäinen hengityskatkos;<br />
'Allerginen reaktio';Vakavat allergiset reaktiot;<br />
'Kollapsi';Kollapsi eli lihasten äkillinen veltostuminen;<br />
'Narkolepsia';Narkolepsia (pitkäaikainen haitta)|<br />
name:v7|description:'''7. Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Onko sinulla yleistä, johonkin kysymykseen liittyvää lisättävää, mitä et saanut vastauksissa esille, tai muita kommentteja?'''|type:textbox|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'|<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'<br />
"><br />
library(OpasnetUtils)<br />
<br />
kysymykset <- c(<br />
"Ikä",<br />
"Rokotevalinta A200 B500",<br />
"Rokotevalinta kommentteja",<br />
"Montako euroa on yksi QALY?",<br />
"Montako euroa QALY yli",<br />
"Montako euroa QALY alle",<br />
"Montako euroa QALY vähintään, ei kiinteää ylärajaa",<br />
"Yhteiskunnan varmistama laumasuoja",<br />
"Rokotevertailuperusteet",<br />
"Rokotevertailu muu",<br />
"Kestämättömät haittavaikutukset",<br />
"Uusia kohtia ja kysymyksiä"<br />
)<br />
<br />
v3a <- paste(v3a, collapse = "; ")<br />
v4 <- paste(v4, collapse = "; ") <br />
v5a <- paste(v5a, collapse = "; ")<br />
v6 <- paste(v6, collapse = "; ")<br />
<br />
# Vähän vaarallista että mikä tahansa virhe johtaa siihen että <br />
# data tulkitaan olemassa olemattomaksi, R tietokantafunktiot ovat <br />
# jäljessä kehitystä: .series ja .locations eivät toimi subseteille.<br />
obs <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
if (!is.null(obs)) {<br />
if ("Obs" %in% colnames(obs)) {<br />
at <- "replace"<br />
obs <- 1<br />
} else {<br />
at <- "append"<br />
obs <- obs$KyselyID<br />
obs <- gsub("[A-Za-z]", "", as.character(obs))<br />
obs <- max(as.numeric(obs)) + 1<br />
}<br />
} else {<br />
at <- "replace"<br />
obs <- 1<br />
}<br />
dat <- data.frame(<br />
KyselyID = obs, <br />
Aika = date(), <br />
Kysymys = kysymykset, <br />
Result = c(v1, v2a, v2b, v3a, v3b, v3c, v3d, v4, v5a, v5b, v6, v7)<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Kysely", <br />
act_type = at, <br />
language = "fin", <br />
who = wiki_username<br />
)<br />
<br />
oprint("Kiitos. Vastauksesi on onnistuneesti tallennettu.")<br />
</rcode><br />
<br />
<rcode label="Näytä vastaukset" embed=1 showcode=-1 graphics=1 variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
library(OpasnetUtilsExt)<br />
library(ggplot2)<br />
<br />
pagename <- gsub(" ", "_", pagename)<br />
dat <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- tryCatch(<br />
opbase.data(ident, subset = "Poistot"),<br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[!dat$KyselyID %in% pois , ]<br />
ggplot(dat[dat$Kysymys == "Ikä" , ], aes(x = Result)) + geom_bar() + theme_gray(base_size = 24) + coord_flip() + labs(title=paste("Ikä"))<br />
ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + theme_gray(base_size = 24) + coord_flip() + labs(title=paste("Rokotevalinta"))<br />
ggplot(dat[dat$Kysymys == "Rokotevertailuperusteet" , ], aes(x = Result)) + geom_bar() + theme_gray(base_size = 24) + coord_flip() + labs(title=paste("Rokotevertailuperusteet"))<br />
#oprint(dat, include.rownames = FALSE)<br />
<br />
<br />
</rcode><br />
<br />
<nowiki>*</nowiki>Menetetyiksi elinvuosiksi lasketaan jokainen ennenaikaisen kuoleman takia menetetty elinvuosi, sekä sairaana vietetty aika. Eri taudeilla on laskemista varten eri painokertoimia, väliltä 0 (=täysin terve) ja 1 (=kuollut). Esimerkiksi vakavan tartuntataudin [[:op_en:Disability weights|kerroin]] on WHO:n mukaan 0,210. Aika sairaana kerrotaan kertoimella, jonka jälkeen saatuja suhteellisia aijanjaksoja lasketaan yhteen vuoden mittaiseksi pätkäksi. Tämän vuoden ei tarvitse olla yhden ihmisen yhtenäinen elinvuosi, vaan voi koostua monen ihmisen päivästä kuukausiin (tai jopa vuosiin) mittaisista sairaana vietetyistä ajanjaksoista. Tarkempi kuvaus sivulla [[Tautitaakka]].<br />
------------<br />
'''Kysymyksen 2 taustamateriaali'''<br />
<br />
{| {{prettytable}}<br />
|+'''Rokottamisesta koituvat hyödyt ja kustannukset<br />
! !! Hinta !! Kustannus !! Lisäkustannus !! Sairastapaukset !! Säästettävät sairaustapaukset !! Lisähinta/Säästettävä sairastapaus !! Asiantuntijoiden määrittelemä sairastamisen hinta !! Kokonaiskustannus<br />
|---<br />
| Ei rokoteta || 0 || 120 || 0 || 60 || 0 || ||rowspan="3"| 2 || 240<br />
|---<br />
| A || 20 || 60 || -40 || 40 || 20 || -1 || 160<br />
|---<br />
| B || 80 || 70 || 30 || 30 || 30 || 1 || 210<br />
|}<br />
<br />
Yllä olevassa taulukossa näet esimerkin tilanteesta, jossa tehdään päätöstä kahden eri rokotteen ostamisen ja käyttämisen väliltä. Samat arvot ovat löydettävissä myös tämän selityksen alta kuvaajien muodossa.<br />
*Ensimmäinen sarake, eli '''hinta''', kertoo rokotteen hankkimiseen tarvittavan rahamäärän kultarahoina. Rokotteen A ostaminen kaikille maksaa siis 20 kultarahaa, ja rokotteen B ostaminen 80.<br />
*Toinen sarake, '''kustannus''', laskee yhteen muut rokotteen käytöstä tai käyttämättömyydestä tulevat kustannukset. Siihen kuuluvat rokottamisestai huolimatta tulevat sairaustapauksista aiheutuvat kustannukset sekä sairastamisesta aiheutuneet työpoissaoloista johtuvat kustannukset yksittäisille ihmisille.<br />
*'''Lisäkustannus''', kertoo, paljonko rokotevaihtoehdot maksavat suhteessa rokottamatta jättämiseen. Tähän on laskennu yhteen sekä hinta että kustannus.<br />
*'''Sairaustapaukset''' kertovat, montako ihmistä sairastuu rokotteen estämään tautiin rokotten saamisesta huolimatta, tai kokonaan ilman sitä. '''Säästettävät sairaustakauset''' kertovat, kuinka paljon vähemmän sairastapauksia on rokotuksen ansiosta.<br />
*'''Lisähinta/säästettävä sairaustapaus''' on rokotteen aiheuttama lisähinta jaettuna säästettävillä sairaustapauksilla. Se kertoo, kuinka monta kultarahaa maksetaan siitä, että yksi ihminen ei sairastu tautiin.<br />
*'''Sairastamisen hinta''' kertoo siitä, kuinka ikäväksi asiantuntijat arvioivat taudin sairastamisen. Tälle sairastammiselle henkisesti ja fyysisesti kärsimiselle on annettu rahallinen arvo, tässä tapauksessa 2 kultarahaa, joka on sairastamisen hinta. Näin voidaan rahallisesti arvioida, kuinka paljon kärsimistä syntyy, kun 60 ihmistä saa taudin.<br />
*'''Kokonaiskustannuksiin''' on laskettu yhteen hinta, kustannukset sekä sairastamisen hinta kerrottuna sairaustapausten määrällä.<br />
<br />
[[Kuva:rokotekysely.jpg]]<br />
<br />
<br />
<br />
== Kysymys ==<br />
<br />
Millainen pitäisi olla pneumokokkirokotekyselyn, jotta<br />
* sen avulla osallistuminen [[pneumokokkirokote|rokotehankintaprojektiin]] olisi helppoa,<br />
* siihen vastaaminen ei vaadi erityistä perehtyneisyyttä pneumokokkiin tai rokotteisiin,<br />
* siinä kartoitetaan erityisesti arvokysymyksiä (mm. jotta ei tarvita perehtyneisyyttä, ks. yllä),<br />
* siinä pyrkimyksenä on kartoittaa millaisia näkemyksiä on eikä niinkään niiden tarkkoja frekvenssejä väestössä?<br />
<br />
== Vastaus ==<br />
<br />
Katso yllä toteutettu kysely.<br />
<br />
== Katso myös ==<br />
<br />
{{pneumokokkirokote}}<br />
<br />
== Viitteet ==<br />
<br />
<references/><br />
<br />
* Tähän voisi kerätä viitteitä eri yhteyksissä ja eri maissa käytetyistä euroa per DALY -kustannustehokkuussuhteista.</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Hiekkalaatikko2&diff=25508Hiekkalaatikko22014-08-18T10:33:14Z<p>Sharp: </p>
<hr />
<div><rcode live=1 showcode=-1 embed=1 graphics=1><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
dat <- opbase.data("Op_fi4524", subset = 'Kysely')<br />
pois <- opbase.data("Op_fi4524", subset = 'Poistot')<br />
dat <- dat[dat$Result != "", ]<br />
#dat <- dat[dat$Kysymys == "Rokotevalinta A200 B500", ]<br />
#ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + coord_flip()<br />
#dat <- as.vector(table(factor(dat$Result)))<br />
#oprint(pois)<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[!dat$KyselyID %in% pois , ]<br />
<br />
oprint(dat[dat$Kysymys == "Rokotevalinta kommentteja", ])<br />
oprint(dat[dat$Kysymys == "Rokotevertailu muu", ])<br />
oprint(dat[dat$Kysymys == "Uusia kohtia ja kysymyksiä", ])<br />
<br />
<br />
#oprint(dat)<br />
#oprint(pois)<br />
<br />
#hist(dat, labels=c("A","B","C","D"))<br />
#barplot(dat)<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Hiekkalaatikko2&diff=25473Hiekkalaatikko22014-08-17T20:42:18Z<p>Sharp: </p>
<hr />
<div><rcode live=1 showcode=-1 embed=1 graphics=1><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
dat <- opbase.data("Op_fi4524", subset = 'Kysely')<br />
pois <- opbase.data("Op_fi4524", subset = 'Poistot')<br />
#dat <- dat[dat$Result != "", ]<br />
#dat <- dat[dat$Kysymys == "Rokotevalinta A200 B500", ]<br />
#ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + coord_flip()<br />
#dat <- as.vector(table(factor(dat$Result)))<br />
#oprint(pois)<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[!dat$KyselyID %in% pois , ]<br />
<br />
oprint(dat)<br />
oprint(pois)<br />
<br />
#hist(dat, labels=c("A","B","C","D"))<br />
#barplot(dat)<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Hiekkalaatikko2&diff=25463Hiekkalaatikko22014-08-15T14:43:46Z<p>Sharp: </p>
<hr />
<div><rcode live=1 showcode=-1 embed=1 graphics=1><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
dat <- opbase.data("Op_fi4524", subset = 'Kysely')<br />
pois <- opbase.data("Op_fi4524", subset = 'Poistot')<br />
#dat <- dat[dat$Result != "", ]<br />
#dat <- dat[dat$Kysymys == "Rokotevalinta A200 B500", ]<br />
#ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + coord_flip()<br />
#dat <- as.vector(table(factor(dat$Result)))<br />
#oprint(pois)<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[dat$KyselyID %in% pois , ]<br />
<br />
oprint(dat)<br />
oprint(pois)<br />
<br />
#hist(dat, labels=c("A","B","C","D"))<br />
#barplot(dat)<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Keskustelu:Pneumokokkirokotekysely&diff=25462Keskustelu:Pneumokokkirokotekysely2014-08-15T14:43:24Z<p>Sharp: </p>
<hr />
<div>'''1. Ikäsi'''<br />
<br />
☐ alle 20<br />
☐ 21-30<br />
☐ 31-60<br />
☐ yli 61<br />
<br />
'''2. Katso kyselyn alla olevaa taulukkoa kahden eri rokotteen hinnoista ja hyödyistä. Kumpi rokote mielestäsi pitäisi valita ja miksi?<br />
<br />
☐ Rokote A, koska se on halvempi rokote.<br />
<br />
☐ Rokote A, koska sen kokonaiskustannukset ovat pienemmät.<br />
<br />
☐ Rokote A, koska se maksaa vähemmän yhtä sairastumisen estoa kohti.<br />
<br />
☐ Rokote B, koska se vähentää sairastamista enemmän, rahasta ei väliä.<br />
<br />
☐ Rokote B, koska 5 kultarahaa ei ole liikaa yhden sairastumisen estämisestä 4:ään verrattuna.<br />
<br />
☐ Ei voi sanoa, koska jokin muu asia on tärkeintä. (Tarkenna alla olevaan tilaan)<br />
<br />
Kommentteja tai tarkennuksia kysymykseen 2 liittyen:<br />
<br />
<br />
<br />
<br />
<br />
<br />
'''3. Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden elinvuoden* säästämiseen?'''<br />
<br />
☐ Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.<br />
<br />
☐ Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.<br />
<br />
☐ Terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen yli __________ mutta alle ___________ euroa<br />
<br />
☐ Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat per elinvuosi halvempia kuin __________ euroa.<br />
<br />
'''4. Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?'''<br />
<br />
☐ Tehdä rokotukset pakollisiksi kaikille.<br />
<br />
☐ Vaaditaan voimassa olevat rokotukset esim. koululaisilta.<br />
<br />
☐ Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.<br />
<br />
☐ Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.<br />
<br />
☐ Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.<br />
<br />
'''5. Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)'''<br />
<br />
☐ Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.<br />
<br />
☐ Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.<br />
<br />
☐ Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.;<br />
<br />
☐ Rokotteen hinta ja muut siitä yhteiskunnalle koituvat kustannukset.<br />
<br />
☐ Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mitkään kaksi niistä eivät riitä.<br />
<br />
☐ Muu, mikä? ________________________________________________________________________________________________________<br />
<br />
'''6. Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.'''<br />
<br />
☐ Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla;<br />
<br />
☐ Korkea kuume<br />
<br />
☐ Kouristukset<br />
<br />
☐ Tilapäinen hengityskatkos<br />
<br />
☐ Vakavat allergiset reaktiot<br />
<br />
☐ Kollapsi eli lihasten äkillinen veltostuminen<br />
<br />
☐ Narkolepsia (pitkäaikainen haitta)<br />
<br />
'''7. Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Onko sinulla yleistä, johonkin kysymykseen liittyvää lisättävää, mitä et saanut vastauksissa esille, tai muita kommentteja?'''<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<nowiki>*</nowiki> Menetetyiksi elinvuosiksi lasketaan jokainen ennenaikaisen kuoleman takia menetetty elinvuosi, sekä sairaana vietetty aika. Eri taudeilla on laskemista varten eri painokertoimia, väliltä 0 (=täysin terve) ja 1 (=kuollut). Esimerkiksi vakavan tartuntataudin kerroin on WHO:n mukaan 0,210. Aika sairaana kerrotaan kertoimella, jonka jälkeen saatuja suhteellisia aijanjaksoja lasketaan yhteen vuoden mittaiseksi pätkäksi. Tämän vuoden ei tarvitse olla yhden ihmisen yhtenäinen elinvuosi, vaan voi koostua monen ihmisen päivästä kuukausiin (tai jopa vuosiin) mittaisista sairaana vietetyistä ajanjaksoista. Tarkempi kuvaus sivulla [[Tautitaakka]].<br />
<br />
'''Kysymyksen 2 taustamateriaali'''<br />
<br />
{| {{prettytable}}<br />
|+'''Rokottamisesta koituvat hyödyt ja kustannukset<br />
|-<br />
| || '''Hinta''' || '''Kustannus''' || '''Sairaustapaukset''' || '''Hinta/Säästettävä sairaustapaus''' || '''Sairastamisen hinta''' || '''Kokonaiskustannus'''<br />
|-<br />
| '''Rokote A''' ||align="center"| 20 ||align="center"| 60 ||align="center"| 40 ||align="center"| 4 ||align="center" rowspan="3"| 2 ||align="center"| 160<br />
|-<br />
| '''Rokote B''' || align="center"| 80 || align="center"| 70 || align="center"| 30 || align="center"| 5 || align="center"| 210<br />
|-<br />
| '''Ei rokoteta''' || align="center"| 0 || align="center"| 120 || align="center"| 60 || align="center"| - || align="center"| 240<br />
|}<br />
<br />
Yllä olevassa taulukossa näet esimerkin tilanteesta, jossa tehdään päätöstä kahden eri rokotteen ostamisen ja käyttämisen väliltä.<br />
*Ensimmäinen sarake, eli '''hinta''', kertoo rokotteen hankkimiseen tarvittavan rahamäärän kultarahoina. Rokotteen A ostaminen kaikille maksaa siis 20 kultarahaa, ja rokotteen B ostaminen 80.<br />
*Toinen sarake, '''kustannus''', laskee yhteen muut rokotteen käytöstä tai käyttämättömyydestä tulevat kustannukset. Siihen kuuluvat rokottamisestai huolimatta tulevat sairaustapauksista aiheutuvat kustannukset sekä sairastamisesta aiheutuneet työpoissaoloista johtuvat kustannukset yksittäisille ihmisille.<br />
*'''Sairaustapaukset''' kertovat, montako ihmistä sairastuu rokotteen estämään tautiin rokotten saamisesta huolimatta, tai kokonaan ilman sitä.<br />
*'''Hinta/säästettävä sairaustapaus''' on rokotteen hinta+kustannus jaettuna sillä määrällä, kuinka monta sairastapausta rokotteen ottaminen estää, eli 60 (sairastapausten määrä ilman rokotetta) - sairaustapausten määrä rokotteen kanssa. Se kertoo, kuinka monta kultarahaa maksetaan siitä, että yksi ihminen ei sairastu tautiin.<br />
*'''Sairastamisen hinta''' kertoo siitä, kuinka iäväksi asiantuntijat arvioivat taudin sairastamisen. Tälle sairastammiselle henkisesti ja fyysisesti kärsimiselle on annettu rahallinen arvo, tässä tapauksessa 2 kultarahaa, joka on sairastamisen hinta. Näin voidaan rahallisesti arvioida, kuinka paljon kärsimistä syntyy, kun 60 ihmistä saa taudin.<br />
*'''Kokonaiskustannuksiin''' on laskettu yhteen hinta, kustannukset sekä sairastamisen hinta kerrottuna sairaustapausten määrällä.<br />
<br />
<br />
'''2. kysymyksen taustatiedot vaihtoehtoisessa muodossa:<br />
<br />
Olipa kerran kuningas. Hän hallitsi pientä valtakuntaa. Hyvin pientä. Oikeastaan se oli enemmänkin kylä kuin valtakunta. Hänen valtakunnassaan asui vain parisataa ihmistä.<br />
<br />
Eräänä päivänä hänen luokseen tuli kolme miestä. Ensimmäinen heistä oli kuninkaan omia miehiä, hänen pienen armeijansa johtaja. Toiset kaksi tulivat naapurivaltakunnista, ja olivat näiden valtakuntien tieteilijöitä.<br />
<br />
“Teidän majesteettinne,” sanoi armeijan johtaja, “Tuon teille huonoja uutisia naapureiltamme. Niissä on puhjennut ja lähtenyt kiertoon epidemia, joka on matkalla meidän pieneen valtakuntaamme. Se ei ole vielä tappanut ketään, mutta se on erittäin epämiellyttävä niille, jotka sen saavat. Tauti on muissa valtakunnissa tarttunut lähes kolmasosaan kansasta. Tämä tarkoittaa noin 60:tä sairastavaa teidän valtakunnassanne.”<br />
<br />
“Hmm,” sanoi kunungas, mietteliäänä, “Meidän täytyy ryhtyä varotoimiin.”<br />
<br />
“Sitä varten minä toin mukanani nämä kaksi miestä,” armeijan johtaja sanoi, “He ovat tietäjiä kahdesta läheisimmästä valtakunnasta. He ovat kertoneet minulle kehittäneensä lääkkeen, joka estää tätä tautia tarttumasta ihmisestä toiseen. Se pistetään suoraan ihoon neulalla, ja se hidastaa taudin leviämistä, ja jotkut eivät sen ansiosta saa tautia lainkaan. He ovat täällä valmiina auttamaan meitä, mutta heillä on hintansa.”<br />
<br />
“Antaa heidän puhua,” kuningas sanoi ja viittasi ensimmäistä tiedemisetä astumaan esiin.<br />
<br />
“Teidän korkautenne,” tieteilijä sanoi, “Minä tuon teille tarjouksen lääkkeestä, jonka olen kehitellyt. Saatte sen koko kansallenne vain 20:llä kultarahalla.”<br />
<br />
“Kaksikymmentä kultarahaa ei todellakaan ole paljon jostain tällaisesta,” kuningas myönsi, “Miten hyvin se toimii? Kuinka moni kansastani olisi turvassa?”<br />
<br />
“Olemme todenneet sen vähentävän sairastuneiden määrää kolmanneksella.”<br />
<br />
“Joten edelleen 40 kansalaistani tulee sairastumaan sinun lääkkeesi avulla,” kuningas pohti ääneen, “Joten heitä täytyy hoitaa. Ja uskon, että lääkkeen jakeluun tarvitaan myös ihmisiä, joille pitäisi maksaa korvauksia. Hakekaa minun rahastonhaltijani.”<br />
<br />
Rahastonhaltija löytyi pian ja saapui kumarrellen huoneeseen. Hänelle selitettiin tilanne, ja hän teki laskelmia hetken.<br />
<br />
“Minusta näyttää siltä,” rahastonhaltija sanoi, “Että koko kansan lääkitseminen ja muut kustannukset yhteen laskettuna lääkkeen ostamisen lisäksi teille tulee kustannuksia 60:n kultarahan verran. Joten ottamalla tämän lääkkeen te pystytte estämään 20 sairautta yhteensä 80:llä kultarahalla. Siis neljä rahaa yhdestä estetystä sairaudesta.”<br />
<br />
“Kiitos,” kuningas sanoi, “Mutta älä poistu vielä. Uskon, että teitä tarvitaan vielä. Haluan kuulla myös toisen lääkkeen tarjouksen.”<br />
<br />
“Teidän majesteettinne,” sanoi toinen tietäjä, “Minun on myönnettävä heti, että minun lääkkeni on kalliimpi, hyvin paljonkin, kuin kilpailijani lääke. Se maksaisi teille jopa 80 kultarahaa. Mutta ennen kuin hylkäätte minun tarjoukseni, kuulkaa tämä. Se toimii paremmin. Se estää jopa puolet sairastumisista. Se tarkoittaa 30:tä estettyä sairautta valtakunnassanne.”<br />
<br />
Kuningas katsoi odottavasti rahastonhaltijaansa. Tämä ymmärsi vihjeen ja alkoi jälleen laskea.<br />
<br />
“Hinta, jonka maksatte lisäksi, on noin 70 kultarahaa tämän lääkkeen valitessanne, teidän korkeutenne,” hän sanoi hetken kuluttua, “Tämä kuulostaa paljolta, mutta maksaisitte jokaisesta estetystä sairaudesta vain 5 kultarahaa. Se on toki enemmän, kuin 4, mutta ei paljon.”<br />
<br />
“Hyvä on,” kuningas sanoi.<br />
<br />
“Kuitenkin, haluan vielä jatkaa,” rahastonhaltija sanoi, “Monet kollegat, joita olen tavannut, ovat olleet sitä mieltä, että sairauksien kustannuksista puhuessa pitäisi ottaa myös huomioon ihmisen kärsimys, ja laskea se mukaan kokonaiskustannuksiin. Olen puhunut myös muihin tietäjien kanssa, ja he ovat olleet samaa mieltä.”<br />
<br />
“Paljonko henkisiä kustannuksia tästä sairastamisesta sitten haluat laskea mukaan?” kuningas kysyi.<br />
<br />
“Teidän korkeutenne, olen jo pyytänyt teidän tietäjänne tänne paikalle, ja olemme tehneet siitä arvion. Olemme sitä mieltä, että jokainen sairastuminen aiheuttaa kahden kultarahan verran kärsimystä. Kun lasketaan nämä mukaan lääkkeen hankinnan hintaan ja muihin kuluihin, ensimmäisen lääkkeen kokonaishinnaksi tulee 160 kultarahaa, ja toisen 210.”<br />
<br />
“Haluan vetäytyä miettimään tätä päätöstä neuvonantajieni kanssa,” kuningas sanoi kaikille, “Ilmoitamme päätöksemme huomenna. Järjestäkää tietäjävieraillemme yösija ja muonitusta.”<br />
<br />
Niin kuningas vetäytyi viiden neuvonantajansa kanssa keskustelemaan lääkkeiden hankinnasta. He puhuivat kauan, mutta eivät päässeet mihinkään lopputulokseen.<br />
<br />
“Teidän tulisi valita ensimmäinen lääke,” ensimmäinen neuvonantaja sanoi, “Sillä se on halvin ostaa. Teillä on kulta tiukilla tähän aikaan vuodesta.”<br />
<br />
“Olen samaa mieltä,” toinen neuvonantaja sanoi, “Mutta minusta se pitäisi valita, koska sen kokonaishinta jää pienimmäksi. Ei sillä ole väliä, millä hinnalla lääkkeen tietäjältä ostamme.”<br />
<br />
“Minä taas olen sitä mieltä,” kolmas sanoi, “Että sillä ei ole väliä, mikä kokonaishinta on. Meidän pitäisi valita ensimmäinen vaihtoehto, sillä jokainen estetty sairaus on halvempi, kuin toisessa vaihtoehdossa.”<br />
<br />
Kaksi muuta olivat kuitenkin eri mieltä.<br />
<br />
“Ei, meidän pitäisi valita toinen lääke!” neljäs puuskahti, “Teidän ei pitäisi välittää rahasta, teidän korkeutenne. Teidän pitäisi aina laittaa kansanne etu ensimmäiseksi. Siksi teidän tulisi valita se lääke, joka estää enemmän sairauksia.”<br />
<br />
“No, olen tavallaan samaa mieltä,” sanoi viimeinen, “Teidän pitäisi valita toinen lääke, mutta ei suinkaan ehdoitta. Mikäli sen hinta olisi vielä korkeampi, valinta voisi olla tiukka. Viisi kultarahaa jokaisesta estetystä sairaudesta ei ole liian paljon.”<br />
<br />
Kaikki neuvonantajat olivat siis eri mieltä, joten kuninkaan oli itse päätettävä, mitä tehdä.<br />
<br />
'''Kenen neuvonantajan ohjeita kuninkaan pitäisi kuunnella?<br />
<br />
<br />
<rcode embed=1 label="Poista kyselyn vastaus" showcode=-1 variables="<br />
category:Pääsivun vastauksien poisto|<br />
name:jaeid|description:Poistettavan vastauksen ID|type:text|<br />
name:syy|description:Poiston syy|type:selection|options:<br />
;- Valitse syy -;<br />
'Testivastaus';Testivastaus;<br />
'Tuplapostaus';Tuplapostaus;<br />
'Spam';Spam (käytä säästellen)|<br />
name:ident|type:hidden|default:'Op_fi4524'|<br />
name:pagename|type:hidden|default:'Pneumokokkirokotekysely'<br />
"><br />
library(OpasnetUtils)<br />
<br />
jaeid <- gsub("\\s", "", unlist(strsplit(jaeid, ",")))<br />
dat <- data.frame(<br />
Versio = 1,<br />
Aika = date(), <br />
Käyttäjä = wiki_username,<br />
Syy = syy, <br />
Result = jaeid<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Poistot", <br />
act_type = "append", <br />
language = "fin",<br />
who = wiki_username<br />
)<br />
<br />
oprint("Vastaukset onnistuneesti poistettu.\n")<br />
<br />
pois <- opbase.data(ident, subset = "Kysely")<br />
<br />
oprint(pois[pois$KyselyID == jaeid , ], include.rownames = FALSE)<br />
<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Pneumokokkirokotekysely&diff=25461Pneumokokkirokotekysely2014-08-15T14:05:15Z<p>Sharp: </p>
<hr />
<div>{|<br />
|[[kuva:thl_logo.png]] <br />
|'''Tämä on kaikille avoin kysely rokotteiden valintaperusteista erityisesti liittyen pneumokokkirokotteeseen. <br />
Kansallisen rokotusohjelman rokote on tulossa kilpailutukseen syksyllä 2014. Voit lukea lisää rokotushankinnasta ja siihen liittyvästä päätöksenteosta sivulta [[Pneumokokkirokotteen hankinta kansalliseen rokotusohjelmaan]]. Kysely ja sivusto on Terveyden ja hyvinvoinnin laitoksen ylläpitämä.<br />
|}<br />
<rcode embed=0 label="Vastaa kyselyyn" showcode=-1 variables="<br />
name:v1|description:'''1. Ikäsi'''|type:selection|options:'alle 20';alle 20;'21-30';21-30;'31-60';31-60;'yli 61';yli 61|<br />
name:v2a|description:'''2. Katso kyselyn alla olevaa taulukkoa kahden eri rokotteen hinnoista ja hyödyistä. Kumpi rokote mielestäsi pitäisi valita ja miksi?'''|type:selection|options:<br />
'Rokote A halvempi'; Rokote A, koska se on halvempi rokote.;<br />
'Rokote A kokonaiskustannukset'; Rokote A, koska sen kokonaiskustannukset ovat pienemmät.;<br />
'Rokote A kustannustehokkuus'; Rokote A, koska se maksaa vähemmän yhtä sairastumisen estoa kohti.;<br />
'Rokote B vaikuttavampi'; Rokote B, koska se vähentää sairastamista enemmän, rahasta ei väliä.;<br />
'Rokote B lisähinta kannattaa'; Rokote B, koska 5 kultarahaa ei ole liikaa yhden sairastumisen estämisestä 4:ään verrattuna.;<br />
'Muu on tärkeintä';Ei voi sanoa, koska jokin muu asia on tärkeintä. (Tarkenna alla olevaan laatikkoon)|<br />
name:v2b|description:Kommentteja tai tarkennuksia kysymykseen 2 liittyen|type:textbox|<br />
name:v3a|description:'''3. Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden elinvuoden* säästämiseen?'''|type:checkbox|options:<br />
'EVS, elintavat';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.;<br />
'EVS, ominaisuudet';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.|<br />
name:v3b|description:Terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen yli (euroa)|type:text|<br />
name:v3c|description:Mutta alle|type:text|<br />
name:v3d|description:Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat per elinvuosi halvempia kuin (euroa)|type:text|<br />
name:v4|description:'''4. Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?'''|type:checkbox|options:<br />
'Rokotukset kaikille';Tehdä rokotukset pakollisiksi kaikille.;<br />
'Rokotukset koululaisille';Vaaditaan voimassa olevat rokotukset esim. koululaisilta.;<br />
'Kannustus ja tieto';Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.;<br />
'Ilmaiset rokotukset';Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.;<br />
'Ei pidä puuttua';Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.|<br />
name:v5a|description:'''5. Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)'''|type:checkbox|options:<br />
'Kansanterveys';Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.;<br />
'Yksittäinen ihminen';Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.;<br />
'Laumasuoja';Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.;<br />
'Rahalliset kustannukset';Rokotteen hinta ja muut siitä yhteiskunnalle koituvat kustannukset.;<br />
'Kaikki yllä';Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mitkään kaksi niistä eivät riitä.|<br />
name:v5b|description:Muu, mikä?|type:textbox|<br />
name:v6|description:'''6. Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.'''|type:checkbox|options:<br />
'Kipu tai ärsytys';Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla;<br />
'Korkea kuume';Korkea kuume;<br />
'Kouristukset';Kouristukset;<br />
'Hengityskatkos';Tilapäinen hengityskatkos;<br />
'Allerginen reaktio';Vakavat allergiset reaktiot;<br />
'Kollapsi';Kollapsi eli lihasten äkillinen veltostuminen;<br />
'Narkolepsia';Narkolepsia (pitkäaikainen haitta)|<br />
name:v7|description:'''7. Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Onko sinulla yleistä, johonkin kysymykseen liittyvää lisättävää, mitä et saanut vastauksissa esille, tai muita kommentteja?'''|type:textbox|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'|<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'<br />
"><br />
library(OpasnetUtils)<br />
<br />
kysymykset <- c(<br />
"Ikä",<br />
"Rokotevalinta A200 B500",<br />
"Rokotevalinta kommentteja",<br />
"Montako euroa on yksi QALY?",<br />
"Montako euroa QALY yli",<br />
"Montako euroa QALY alle",<br />
"Montako euroa QALY vähintään, ei kiinteää ylärajaa",<br />
"Yhteiskunnan varmistama laumasuoja",<br />
"Rokotevertailuperusteet",<br />
"Rokotevertailu muu",<br />
"Kestämättömät haittavaikutukset",<br />
"Uusia kohtia ja kysymyksiä"<br />
)<br />
<br />
v3a <- paste(v3a, collapse = "; ")<br />
v4 <- paste(v4, collapse = "; ") <br />
v5a <- paste(v5a, collapse = "; ")<br />
v6 <- paste(v6, collapse = "; ")<br />
<br />
# Vähän vaarallista että mikä tahansa virhe johtaa siihen että <br />
# data tulkitaan olemassa olemattomaksi, R tietokantafunktiot ovat <br />
# jäljessä kehitystä: .series ja .locations eivät toimi subseteille.<br />
obs <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
if (!is.null(obs)) {<br />
if ("Obs" %in% colnames(obs)) {<br />
at <- "replace"<br />
obs <- 1<br />
} else {<br />
at <- "append"<br />
obs <- obs$KyselyID<br />
obs <- gsub("[A-Za-z]", "", as.character(obs))<br />
obs <- max(as.numeric(obs)) + 1<br />
}<br />
} else {<br />
at <- "replace"<br />
obs <- 1<br />
}<br />
dat <- data.frame(<br />
KyselyID = obs, <br />
Aika = date(), <br />
Kysymys = kysymykset, <br />
Result = c(v1, v2a, v2b, v3a, v3b, v3c, v3d, v4, v5a, v5b, v6, v7)<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Kysely", <br />
act_type = at, <br />
language = "fin", <br />
who = wiki_username<br />
)<br />
<br />
oprint("Kiitos. Vastauksesi on onnistuneesti tallennettu.")<br />
</rcode><br />
<br />
<rcode label="Näytä vastaukset" embed=1 showcode=-1 graphics=1 variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
library(OpasnetUtilsExt)<br />
library(ggplot2)<br />
<br />
pagename <- gsub(" ", "_", pagename)<br />
dat <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- tryCatch(<br />
opbase.data(ident, subset = "Poistot"),<br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[!dat$KyselyID %in% pois , ]<br />
ggplot(dat[dat$Kysymys == "Ikä" , ], aes(x = Result)) + geom_bar() + theme_gray(base_size = 24) + coord_flip() + labs(title=paste("Ikä"))<br />
ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + theme_gray(base_size = 24) + coord_flip() + labs(title=paste("Rokotevalinta"))<br />
# ggplot(dat[dat$Kysymys == "Ikä" , ], aes(x = Result)) + geom_bar() + theme_gray(base_size = 24) + coord_flip() + #labs(title=paste("Ikä"))<br />
#oprint(dat, include.rownames = FALSE)<br />
<br />
<br />
</rcode><br />
<br />
<nowiki>*</nowiki>Menetetyiksi elinvuosiksi lasketaan jokainen ennenaikaisen kuoleman takia menetetty elinvuosi, sekä sairaana vietetty aika. Eri taudeilla on laskemista varten eri painokertoimia, väliltä 0 (=täysin terve) ja 1 (=kuollut). Esimerkiksi vakavan tartuntataudin [[:op_en:Disability weights|kerroin]] on WHO:n mukaan 0,210. Aika sairaana kerrotaan kertoimella, jonka jälkeen saatuja suhteellisia aijanjaksoja lasketaan yhteen vuoden mittaiseksi pätkäksi. Tämän vuoden ei tarvitse olla yhden ihmisen yhtenäinen elinvuosi, vaan voi koostua monen ihmisen päivästä kuukausiin (tai jopa vuosiin) mittaisista sairaana vietetyistä ajanjaksoista. Tarkempi kuvaus sivulla [[Tautitaakka]].<br />
<br />
--------------------<br />
<br><br />
KOMMENTTI: Rokotekyselyn Taulukko 2 vastaa käsittääkseni seuraavaa tilannetta<br />
<br />
kokonais lisä sairaus säästetyt <br />
kustannus kustannus(*) tapaukset sairaustap.<br />
EI ROKOTETA 120 0 60 0<br />
ROKOTE A 80 (=20+60) -40 40 20<br />
ROKOTE B 150(=80+70) 30 30 30<br />
<br />
(*) lisäkustannus verrattuna "ei rokoteta" tilanteeseen<br />
<br />
Nyt Hinta/(säästettävä sairaustapaus) on ymmärtääkseni laskettu käyttämällä<br />
hintana lukuja 80 ja 150 eli ottamatta huomioon tilanteen "ei rokoteta"<br />
kustannuksia vaikka säästetyt sairaustapaukset lasketaankin vähentyminä <br />
tilanteen "ei rokoteta" lukuihin verrattuna.<br />
<br />
Rokotteen hintana pitäisi kaiketi käyttää saraketta (*),<br />
joten rokotteella A rahaa säästyy pelkästään hoitokustannusten säästöinä<br />
ja yhden säästetyn sairaustapuksen "hintaa" tällöin vaikea määrittää.<br />
<br />
Esimerkin tilanteessa rokote A on aina kannattava (säästää rahaa) ja <br />
rokote B valitaan, jos 10 sairaustapauksen lisäsäästöstä A:han<br />
verrattuna ollaan valmiit maksamaan 70 kultarahaa eli 7 rahaa/tapaus.<br />
<br />
--[[Käyttäjä:Mnud|Markku N.]] ([[Keskustelu käyttäjästä:Mnud|keskustelu]]) 14. elokuuta 2014 kello 14.42 (UTC)<br />
<br />
------------<br />
<br><br />
<br />
'''Kysymyksen 2 taustamateriaali'''<br />
<br />
{| {{prettytable}}<br />
|+'''Rokottamisesta koituvat hyödyt ja kustannukset<br />
|-<br />
| || '''Hinta''' || '''Kustannus''' || '''Sairaustapaukset''' || '''Hinta/Säästettävä sairaustapaus''' || '''Sairastamisen hinta''' || '''Kokonaiskustannus'''<br />
|-<br />
| '''Rokote A''' ||align="center"| 20 ||align="center"| 60 ||align="center"| 40 ||align="center"| 4 ||align="center" rowspan="3"| 2 ||align="center"| 160<br />
|-<br />
| '''Rokote B''' || align="center"| 80 || align="center"| 70 || align="center"| 30 || align="center"| 5 || align="center"| 210<br />
|-<br />
| '''Ei rokoteta''' || align="center"| 0 || align="center"| 120 || align="center"| 60 || align="center"| - || align="center"| 240<br />
|}<br />
<br />
Yllä olevassa taulukossa näet esimerkin tilanteesta, jossa tehdään päätöstä kahden eri rokotteen ostamisen ja käyttämisen väliltä. Samat arvot ovat löydettävissä myös tämän selityksen alta kuvaajien muodossa.<br />
*Ensimmäinen sarake, eli '''hinta''', kertoo rokotteen hankkimiseen tarvittavan rahamäärän kultarahoina. Rokotteen A ostaminen kaikille maksaa siis 20 kultarahaa, ja rokotteen B ostaminen 80.<br />
*Toinen sarake, '''kustannus''', laskee yhteen muut rokotteen käytöstä tai käyttämättömyydestä tulevat kustannukset. Siihen kuuluvat rokottamisestai huolimatta tulevat sairaustapauksista aiheutuvat kustannukset sekä sairastamisesta aiheutuneet työpoissaoloista johtuvat kustannukset yksittäisille ihmisille.<br />
*'''Sairaustapaukset''' kertovat, montako ihmistä sairastuu rokotteen estämään tautiin rokotten saamisesta huolimatta, tai kokonaan ilman sitä.<br />
*'''Hinta/säästettävä sairaustapaus''' on rokotteen hinta+kustannus jaettuna sillä määrällä, kuinka monta sairastapausta rokotteen ottaminen estää, eli 60 (sairastapausten määrä ilman rokotetta) - sairaustapausten määrä rokotteen kanssa. Se kertoo, kuinka monta kultarahaa maksetaan siitä, että yksi ihminen ei sairastu tautiin.<br />
*'''Sairastamisen hinta''' kertoo siitä, kuinka iäväksi asiantuntijat arvioivat taudin sairastamisen. Tälle sairastammiselle henkisesti ja fyysisesti kärsimiselle on annettu rahallinen arvo, tässä tapauksessa 2 kultarahaa, joka on sairastamisen hinta. Näin voidaan rahallisesti arvioida, kuinka paljon kärsimistä syntyy, kun 60 ihmistä saa taudin.<br />
*'''Kokonaiskustannuksiin''' on laskettu yhteen hinta, kustannukset sekä sairastamisen hinta kerrottuna sairaustapausten määrällä.<br />
<br />
[[Kuva:rokotekysely.jpg]]<br />
<br />
Kysymyksen 2 taustatiedot löytyvät myös tarinan muodossa [[Keskustelu:Pneumokokkirokotekysely|keskustelusivulta]].<br />
<br />
<br />
<br />
== Kysymys ==<br />
<br />
Millainen pitäisi olla pneumokokkirokotekyselyn, jotta<br />
* sen avulla osallistuminen [[pneumokokkirokote|rokotehankintaprojektiin]] olisi helppoa,<br />
* siihen vastaaminen ei vaadi erityistä perehtyneisyyttä pneumokokkiin tai rokotteisiin,<br />
* siinä kartoitetaan erityisesti arvokysymyksiä (mm. jotta ei tarvita perehtyneisyyttä, ks. yllä),<br />
* siinä pyrkimyksenä on kartoittaa millaisia näkemyksiä on eikä niinkään niiden tarkkoja frekvenssejä väestössä?<br />
<br />
== Vastaus ==<br />
<br />
Katso yllä toteutettu kysely.<br />
<br />
== Katso myös ==<br />
<br />
{{pneumokokkirokote}}<br />
<br />
== Viitteet ==<br />
<br />
<references/><br />
<br />
* Tähän voisi kerätä viitteitä eri yhteyksissä ja eri maissa käytetyistä euroa per DALY -kustannustehokkuussuhteista.</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Pneumokokkirokotekysely&diff=25460Pneumokokkirokotekysely2014-08-15T14:04:44Z<p>Sharp: </p>
<hr />
<div>{|<br />
|[[kuva:thl_logo.png]] <br />
|'''Tämä on kaikille avoin kysely rokotteiden valintaperusteista erityisesti liittyen pneumokokkirokotteeseen. <br />
Kansallisen rokotusohjelman rokote on tulossa kilpailutukseen syksyllä 2014. Voit lukea lisää rokotushankinnasta ja siihen liittyvästä päätöksenteosta sivulta [[Pneumokokkirokotteen hankinta kansalliseen rokotusohjelmaan]]. Kysely ja sivusto on Terveyden ja hyvinvoinnin laitoksen ylläpitämä.<br />
|}<br />
<rcode embed=0 label="Vastaa kyselyyn" showcode=-1 variables="<br />
name:v1|description:'''1. Ikäsi'''|type:selection|options:'alle 20';alle 20;'21-30';21-30;'31-60';31-60;'yli 61';yli 61|<br />
name:v2a|description:'''2. Katso kyselyn alla olevaa taulukkoa kahden eri rokotteen hinnoista ja hyödyistä. Kumpi rokote mielestäsi pitäisi valita ja miksi?'''|type:selection|options:<br />
'Rokote A halvempi'; Rokote A, koska se on halvempi rokote.;<br />
'Rokote A kokonaiskustannukset'; Rokote A, koska sen kokonaiskustannukset ovat pienemmät.;<br />
'Rokote A kustannustehokkuus'; Rokote A, koska se maksaa vähemmän yhtä sairastumisen estoa kohti.;<br />
'Rokote B vaikuttavampi'; Rokote B, koska se vähentää sairastamista enemmän, rahasta ei väliä.;<br />
'Rokote B lisähinta kannattaa'; Rokote B, koska 5 kultarahaa ei ole liikaa yhden sairastumisen estämisestä 4:ään verrattuna.;<br />
'Muu on tärkeintä';Ei voi sanoa, koska jokin muu asia on tärkeintä. (Tarkenna alla olevaan laatikkoon)|<br />
name:v2b|description:Kommentteja tai tarkennuksia kysymykseen 2 liittyen|type:textbox|<br />
name:v3a|description:'''3. Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden elinvuoden* säästämiseen?'''|type:checkbox|options:<br />
'EVS, elintavat';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.;<br />
'EVS, ominaisuudet';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.|<br />
name:v3b|description:Terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen yli (euroa)|type:text|<br />
name:v3c|description:Mutta alle|type:text|<br />
name:v3d|description:Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat per elinvuosi halvempia kuin (euroa)|type:text|<br />
name:v4|description:'''4. Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?'''|type:checkbox|options:<br />
'Rokotukset kaikille';Tehdä rokotukset pakollisiksi kaikille.;<br />
'Rokotukset koululaisille';Vaaditaan voimassa olevat rokotukset esim. koululaisilta.;<br />
'Kannustus ja tieto';Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.;<br />
'Ilmaiset rokotukset';Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.;<br />
'Ei pidä puuttua';Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.|<br />
name:v5a|description:'''5. Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)'''|type:checkbox|options:<br />
'Kansanterveys';Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.;<br />
'Yksittäinen ihminen';Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.;<br />
'Laumasuoja';Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.;<br />
'Rahalliset kustannukset';Rokotteen hinta ja muut siitä yhteiskunnalle koituvat kustannukset.;<br />
'Kaikki yllä';Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mitkään kaksi niistä eivät riitä.|<br />
name:v5b|description:Muu, mikä?|type:textbox|<br />
name:v6|description:'''6. Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.'''|type:checkbox|options:<br />
'Kipu tai ärsytys';Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla;<br />
'Korkea kuume';Korkea kuume;<br />
'Kouristukset';Kouristukset;<br />
'Hengityskatkos';Tilapäinen hengityskatkos;<br />
'Allerginen reaktio';Vakavat allergiset reaktiot;<br />
'Kollapsi';Kollapsi eli lihasten äkillinen veltostuminen;<br />
'Narkolepsia';Narkolepsia (pitkäaikainen haitta)|<br />
name:v7|description:'''7. Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Onko sinulla yleistä, johonkin kysymykseen liittyvää lisättävää, mitä et saanut vastauksissa esille, tai muita kommentteja?'''|type:textbox|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'|<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'<br />
"><br />
library(OpasnetUtils)<br />
<br />
kysymykset <- c(<br />
"Ikä",<br />
"Rokotevalinta A200 B500",<br />
"Rokotevalinta kommentteja",<br />
"Montako euroa on yksi QALY?",<br />
"Montako euroa QALY yli",<br />
"Montako euroa QALY alle",<br />
"Montako euroa QALY vähintään, ei kiinteää ylärajaa",<br />
"Yhteiskunnan varmistama laumasuoja",<br />
"Rokotevertailuperusteet",<br />
"Rokotevertailu muu",<br />
"Kestämättömät haittavaikutukset",<br />
"Uusia kohtia ja kysymyksiä"<br />
)<br />
<br />
v3a <- paste(v3a, collapse = "; ")<br />
v4 <- paste(v4, collapse = "; ") <br />
v5a <- paste(v5a, collapse = "; ")<br />
v6 <- paste(v6, collapse = "; ")<br />
<br />
# Vähän vaarallista että mikä tahansa virhe johtaa siihen että <br />
# data tulkitaan olemassa olemattomaksi, R tietokantafunktiot ovat <br />
# jäljessä kehitystä: .series ja .locations eivät toimi subseteille.<br />
obs <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
if (!is.null(obs)) {<br />
if ("Obs" %in% colnames(obs)) {<br />
at <- "replace"<br />
obs <- 1<br />
} else {<br />
at <- "append"<br />
obs <- obs$KyselyID<br />
obs <- gsub("[A-Za-z]", "", as.character(obs))<br />
obs <- max(as.numeric(obs)) + 1<br />
}<br />
} else {<br />
at <- "replace"<br />
obs <- 1<br />
}<br />
dat <- data.frame(<br />
KyselyID = obs, <br />
Aika = date(), <br />
Kysymys = kysymykset, <br />
Result = c(v1, v2a, v2b, v3a, v3b, v3c, v3d, v4, v5a, v5b, v6, v7)<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Kysely", <br />
act_type = at, <br />
language = "fin", <br />
who = wiki_username<br />
)<br />
<br />
oprint("Kiitos. Vastauksesi on onnistuneesti tallennettu.")<br />
</rcode><br />
<br />
<rcode label="Näytä vastaukset" embed=1 showcode=-1 graphics=1 variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
library(OpasnetUtilsExt)<br />
library(ggplot2)<br />
<br />
pagename <- gsub(" ", "_", pagename)<br />
dat <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- tryCatch(<br />
opbase.data(ident, subset = "Poistot"),<br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[!dat$KyselyID %in% pois , ]<br />
ggplot(dat[dat$Kysymys == "Ikä" , ], aes(x = Result)) + geom_bar() + theme_gray(base_size = 24) + coord_flip() + labs(title=paste("Ikä"))<br />
ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + theme_gray(base_size = 24) + coord_flip() + labs(title=paste("Rokotevalinta"))<br />
ggplot(dat[dat$Kysymys == "Ikä" , ], aes(x = Result)) + geom_bar() + theme_gray(base_size = 24) + coord_flip() + labs(title=paste("Ikä"))<br />
#oprint(dat, include.rownames = FALSE)<br />
<br />
<br />
</rcode><br />
<br />
<nowiki>*</nowiki>Menetetyiksi elinvuosiksi lasketaan jokainen ennenaikaisen kuoleman takia menetetty elinvuosi, sekä sairaana vietetty aika. Eri taudeilla on laskemista varten eri painokertoimia, väliltä 0 (=täysin terve) ja 1 (=kuollut). Esimerkiksi vakavan tartuntataudin [[:op_en:Disability weights|kerroin]] on WHO:n mukaan 0,210. Aika sairaana kerrotaan kertoimella, jonka jälkeen saatuja suhteellisia aijanjaksoja lasketaan yhteen vuoden mittaiseksi pätkäksi. Tämän vuoden ei tarvitse olla yhden ihmisen yhtenäinen elinvuosi, vaan voi koostua monen ihmisen päivästä kuukausiin (tai jopa vuosiin) mittaisista sairaana vietetyistä ajanjaksoista. Tarkempi kuvaus sivulla [[Tautitaakka]].<br />
<br />
--------------------<br />
<br><br />
KOMMENTTI: Rokotekyselyn Taulukko 2 vastaa käsittääkseni seuraavaa tilannetta<br />
<br />
kokonais lisä sairaus säästetyt <br />
kustannus kustannus(*) tapaukset sairaustap.<br />
EI ROKOTETA 120 0 60 0<br />
ROKOTE A 80 (=20+60) -40 40 20<br />
ROKOTE B 150(=80+70) 30 30 30<br />
<br />
(*) lisäkustannus verrattuna "ei rokoteta" tilanteeseen<br />
<br />
Nyt Hinta/(säästettävä sairaustapaus) on ymmärtääkseni laskettu käyttämällä<br />
hintana lukuja 80 ja 150 eli ottamatta huomioon tilanteen "ei rokoteta"<br />
kustannuksia vaikka säästetyt sairaustapaukset lasketaankin vähentyminä <br />
tilanteen "ei rokoteta" lukuihin verrattuna.<br />
<br />
Rokotteen hintana pitäisi kaiketi käyttää saraketta (*),<br />
joten rokotteella A rahaa säästyy pelkästään hoitokustannusten säästöinä<br />
ja yhden säästetyn sairaustapuksen "hintaa" tällöin vaikea määrittää.<br />
<br />
Esimerkin tilanteessa rokote A on aina kannattava (säästää rahaa) ja <br />
rokote B valitaan, jos 10 sairaustapauksen lisäsäästöstä A:han<br />
verrattuna ollaan valmiit maksamaan 70 kultarahaa eli 7 rahaa/tapaus.<br />
<br />
--[[Käyttäjä:Mnud|Markku N.]] ([[Keskustelu käyttäjästä:Mnud|keskustelu]]) 14. elokuuta 2014 kello 14.42 (UTC)<br />
<br />
------------<br />
<br><br />
<br />
'''Kysymyksen 2 taustamateriaali'''<br />
<br />
{| {{prettytable}}<br />
|+'''Rokottamisesta koituvat hyödyt ja kustannukset<br />
|-<br />
| || '''Hinta''' || '''Kustannus''' || '''Sairaustapaukset''' || '''Hinta/Säästettävä sairaustapaus''' || '''Sairastamisen hinta''' || '''Kokonaiskustannus'''<br />
|-<br />
| '''Rokote A''' ||align="center"| 20 ||align="center"| 60 ||align="center"| 40 ||align="center"| 4 ||align="center" rowspan="3"| 2 ||align="center"| 160<br />
|-<br />
| '''Rokote B''' || align="center"| 80 || align="center"| 70 || align="center"| 30 || align="center"| 5 || align="center"| 210<br />
|-<br />
| '''Ei rokoteta''' || align="center"| 0 || align="center"| 120 || align="center"| 60 || align="center"| - || align="center"| 240<br />
|}<br />
<br />
Yllä olevassa taulukossa näet esimerkin tilanteesta, jossa tehdään päätöstä kahden eri rokotteen ostamisen ja käyttämisen väliltä. Samat arvot ovat löydettävissä myös tämän selityksen alta kuvaajien muodossa.<br />
*Ensimmäinen sarake, eli '''hinta''', kertoo rokotteen hankkimiseen tarvittavan rahamäärän kultarahoina. Rokotteen A ostaminen kaikille maksaa siis 20 kultarahaa, ja rokotteen B ostaminen 80.<br />
*Toinen sarake, '''kustannus''', laskee yhteen muut rokotteen käytöstä tai käyttämättömyydestä tulevat kustannukset. Siihen kuuluvat rokottamisestai huolimatta tulevat sairaustapauksista aiheutuvat kustannukset sekä sairastamisesta aiheutuneet työpoissaoloista johtuvat kustannukset yksittäisille ihmisille.<br />
*'''Sairaustapaukset''' kertovat, montako ihmistä sairastuu rokotteen estämään tautiin rokotten saamisesta huolimatta, tai kokonaan ilman sitä.<br />
*'''Hinta/säästettävä sairaustapaus''' on rokotteen hinta+kustannus jaettuna sillä määrällä, kuinka monta sairastapausta rokotteen ottaminen estää, eli 60 (sairastapausten määrä ilman rokotetta) - sairaustapausten määrä rokotteen kanssa. Se kertoo, kuinka monta kultarahaa maksetaan siitä, että yksi ihminen ei sairastu tautiin.<br />
*'''Sairastamisen hinta''' kertoo siitä, kuinka iäväksi asiantuntijat arvioivat taudin sairastamisen. Tälle sairastammiselle henkisesti ja fyysisesti kärsimiselle on annettu rahallinen arvo, tässä tapauksessa 2 kultarahaa, joka on sairastamisen hinta. Näin voidaan rahallisesti arvioida, kuinka paljon kärsimistä syntyy, kun 60 ihmistä saa taudin.<br />
*'''Kokonaiskustannuksiin''' on laskettu yhteen hinta, kustannukset sekä sairastamisen hinta kerrottuna sairaustapausten määrällä.<br />
<br />
[[Kuva:rokotekysely.jpg]]<br />
<br />
Kysymyksen 2 taustatiedot löytyvät myös tarinan muodossa [[Keskustelu:Pneumokokkirokotekysely|keskustelusivulta]].<br />
<br />
<br />
<br />
== Kysymys ==<br />
<br />
Millainen pitäisi olla pneumokokkirokotekyselyn, jotta<br />
* sen avulla osallistuminen [[pneumokokkirokote|rokotehankintaprojektiin]] olisi helppoa,<br />
* siihen vastaaminen ei vaadi erityistä perehtyneisyyttä pneumokokkiin tai rokotteisiin,<br />
* siinä kartoitetaan erityisesti arvokysymyksiä (mm. jotta ei tarvita perehtyneisyyttä, ks. yllä),<br />
* siinä pyrkimyksenä on kartoittaa millaisia näkemyksiä on eikä niinkään niiden tarkkoja frekvenssejä väestössä?<br />
<br />
== Vastaus ==<br />
<br />
Katso yllä toteutettu kysely.<br />
<br />
== Katso myös ==<br />
<br />
{{pneumokokkirokote}}<br />
<br />
== Viitteet ==<br />
<br />
<references/><br />
<br />
* Tähän voisi kerätä viitteitä eri yhteyksissä ja eri maissa käytetyistä euroa per DALY -kustannustehokkuussuhteista.</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Keskustelu:Pneumokokkirokotekysely&diff=25459Keskustelu:Pneumokokkirokotekysely2014-08-15T13:59:39Z<p>Sharp: </p>
<hr />
<div>'''1. Ikäsi'''<br />
<br />
☐ alle 20<br />
☐ 21-30<br />
☐ 31-60<br />
☐ yli 61<br />
<br />
'''2. Katso kyselyn alla olevaa taulukkoa kahden eri rokotteen hinnoista ja hyödyistä. Kumpi rokote mielestäsi pitäisi valita ja miksi?<br />
<br />
☐ Rokote A, koska se on halvempi rokote.<br />
<br />
☐ Rokote A, koska sen kokonaiskustannukset ovat pienemmät.<br />
<br />
☐ Rokote A, koska se maksaa vähemmän yhtä sairastumisen estoa kohti.<br />
<br />
☐ Rokote B, koska se vähentää sairastamista enemmän, rahasta ei väliä.<br />
<br />
☐ Rokote B, koska 5 kultarahaa ei ole liikaa yhden sairastumisen estämisestä 4:ään verrattuna.<br />
<br />
☐ Ei voi sanoa, koska jokin muu asia on tärkeintä. (Tarkenna alla olevaan tilaan)<br />
<br />
Kommentteja tai tarkennuksia kysymykseen 2 liittyen:<br />
<br />
<br />
<br />
<br />
<br />
<br />
'''3. Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden elinvuoden* säästämiseen?'''<br />
<br />
☐ Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.<br />
<br />
☐ Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.<br />
<br />
☐ Terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen yli __________ mutta alle ___________ euroa<br />
<br />
☐ Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat per elinvuosi halvempia kuin __________ euroa.<br />
<br />
'''4. Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?'''<br />
<br />
☐ Tehdä rokotukset pakollisiksi kaikille.<br />
<br />
☐ Vaaditaan voimassa olevat rokotukset esim. koululaisilta.<br />
<br />
☐ Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.<br />
<br />
☐ Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.<br />
<br />
☐ Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.<br />
<br />
'''5. Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)'''<br />
<br />
☐ Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.<br />
<br />
☐ Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.<br />
<br />
☐ Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.;<br />
<br />
☐ Rokotteen hinta ja muut siitä yhteiskunnalle koituvat kustannukset.<br />
<br />
☐ Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mitkään kaksi niistä eivät riitä.<br />
<br />
☐ Muu, mikä? ________________________________________________________________________________________________________<br />
<br />
'''6. Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.'''<br />
<br />
☐ Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla;<br />
<br />
☐ Korkea kuume<br />
<br />
☐ Kouristukset<br />
<br />
☐ Tilapäinen hengityskatkos<br />
<br />
☐ Vakavat allergiset reaktiot<br />
<br />
☐ Kollapsi eli lihasten äkillinen veltostuminen<br />
<br />
☐ Narkolepsia (pitkäaikainen haitta)<br />
<br />
'''7. Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Onko sinulla yleistä, johonkin kysymykseen liittyvää lisättävää, mitä et saanut vastauksissa esille, tai muita kommentteja?'''<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<nowiki>*</nowiki> Menetetyiksi elinvuosiksi lasketaan jokainen ennenaikaisen kuoleman takia menetetty elinvuosi, sekä sairaana vietetty aika. Eri taudeilla on laskemista varten eri painokertoimia, väliltä 0 (=täysin terve) ja 1 (=kuollut). Esimerkiksi vakavan tartuntataudin kerroin on WHO:n mukaan 0,210. Aika sairaana kerrotaan kertoimella, jonka jälkeen saatuja suhteellisia aijanjaksoja lasketaan yhteen vuoden mittaiseksi pätkäksi. Tämän vuoden ei tarvitse olla yhden ihmisen yhtenäinen elinvuosi, vaan voi koostua monen ihmisen päivästä kuukausiin (tai jopa vuosiin) mittaisista sairaana vietetyistä ajanjaksoista. Tarkempi kuvaus sivulla [[Tautitaakka]].<br />
<br />
'''Kysymyksen 2 taustamateriaali'''<br />
<br />
{| {{prettytable}}<br />
|+'''Rokottamisesta koituvat hyödyt ja kustannukset<br />
|-<br />
| || '''Hinta''' || '''Kustannus''' || '''Sairaustapaukset''' || '''Hinta/Säästettävä sairaustapaus''' || '''Sairastamisen hinta''' || '''Kokonaiskustannus'''<br />
|-<br />
| '''Rokote A''' ||align="center"| 20 ||align="center"| 60 ||align="center"| 40 ||align="center"| 4 ||align="center" rowspan="3"| 2 ||align="center"| 160<br />
|-<br />
| '''Rokote B''' || align="center"| 80 || align="center"| 70 || align="center"| 30 || align="center"| 5 || align="center"| 210<br />
|-<br />
| '''Ei rokoteta''' || align="center"| 0 || align="center"| 120 || align="center"| 60 || align="center"| - || align="center"| 240<br />
|}<br />
<br />
Yllä olevassa taulukossa näet esimerkin tilanteesta, jossa tehdään päätöstä kahden eri rokotteen ostamisen ja käyttämisen väliltä.<br />
*Ensimmäinen sarake, eli '''hinta''', kertoo rokotteen hankkimiseen tarvittavan rahamäärän kultarahoina. Rokotteen A ostaminen kaikille maksaa siis 20 kultarahaa, ja rokotteen B ostaminen 80.<br />
*Toinen sarake, '''kustannus''', laskee yhteen muut rokotteen käytöstä tai käyttämättömyydestä tulevat kustannukset. Siihen kuuluvat rokottamisestai huolimatta tulevat sairaustapauksista aiheutuvat kustannukset sekä sairastamisesta aiheutuneet työpoissaoloista johtuvat kustannukset yksittäisille ihmisille.<br />
*'''Sairaustapaukset''' kertovat, montako ihmistä sairastuu rokotteen estämään tautiin rokotten saamisesta huolimatta, tai kokonaan ilman sitä.<br />
*'''Hinta/säästettävä sairaustapaus''' on rokotteen hinta+kustannus jaettuna sillä määrällä, kuinka monta sairastapausta rokotteen ottaminen estää, eli 60 (sairastapausten määrä ilman rokotetta) - sairaustapausten määrä rokotteen kanssa. Se kertoo, kuinka monta kultarahaa maksetaan siitä, että yksi ihminen ei sairastu tautiin.<br />
*'''Sairastamisen hinta''' kertoo siitä, kuinka iäväksi asiantuntijat arvioivat taudin sairastamisen. Tälle sairastammiselle henkisesti ja fyysisesti kärsimiselle on annettu rahallinen arvo, tässä tapauksessa 2 kultarahaa, joka on sairastamisen hinta. Näin voidaan rahallisesti arvioida, kuinka paljon kärsimistä syntyy, kun 60 ihmistä saa taudin.<br />
*'''Kokonaiskustannuksiin''' on laskettu yhteen hinta, kustannukset sekä sairastamisen hinta kerrottuna sairaustapausten määrällä.<br />
<br />
<br />
'''2. kysymyksen taustatiedot vaihtoehtoisessa muodossa:<br />
<br />
Olipa kerran kuningas. Hän hallitsi pientä valtakuntaa. Hyvin pientä. Oikeastaan se oli enemmänkin kylä kuin valtakunta. Hänen valtakunnassaan asui vain parisataa ihmistä.<br />
<br />
Eräänä päivänä hänen luokseen tuli kolme miestä. Ensimmäinen heistä oli kuninkaan omia miehiä, hänen pienen armeijansa johtaja. Toiset kaksi tulivat naapurivaltakunnista, ja olivat näiden valtakuntien tieteilijöitä.<br />
<br />
“Teidän majesteettinne,” sanoi armeijan johtaja, “Tuon teille huonoja uutisia naapureiltamme. Niissä on puhjennut ja lähtenyt kiertoon epidemia, joka on matkalla meidän pieneen valtakuntaamme. Se ei ole vielä tappanut ketään, mutta se on erittäin epämiellyttävä niille, jotka sen saavat. Tauti on muissa valtakunnissa tarttunut lähes kolmasosaan kansasta. Tämä tarkoittaa noin 60:tä sairastavaa teidän valtakunnassanne.”<br />
<br />
“Hmm,” sanoi kunungas, mietteliäänä, “Meidän täytyy ryhtyä varotoimiin.”<br />
<br />
“Sitä varten minä toin mukanani nämä kaksi miestä,” armeijan johtaja sanoi, “He ovat tietäjiä kahdesta läheisimmästä valtakunnasta. He ovat kertoneet minulle kehittäneensä lääkkeen, joka estää tätä tautia tarttumasta ihmisestä toiseen. Se pistetään suoraan ihoon neulalla, ja se hidastaa taudin leviämistä, ja jotkut eivät sen ansiosta saa tautia lainkaan. He ovat täällä valmiina auttamaan meitä, mutta heillä on hintansa.”<br />
<br />
“Antaa heidän puhua,” kuningas sanoi ja viittasi ensimmäistä tiedemisetä astumaan esiin.<br />
<br />
“Teidän korkautenne,” tieteilijä sanoi, “Minä tuon teille tarjouksen lääkkeestä, jonka olen kehitellyt. Saatte sen koko kansallenne vain 20:llä kultarahalla.”<br />
<br />
“Kaksikymmentä kultarahaa ei todellakaan ole paljon jostain tällaisesta,” kuningas myönsi, “Miten hyvin se toimii? Kuinka moni kansastani olisi turvassa?”<br />
<br />
“Olemme todenneet sen vähentävän sairastuneiden määrää kolmanneksella.”<br />
<br />
“Joten edelleen 40 kansalaistani tulee sairastumaan sinun lääkkeesi avulla,” kuningas pohti ääneen, “Joten heitä täytyy hoitaa. Ja uskon, että lääkkeen jakeluun tarvitaan myös ihmisiä, joille pitäisi maksaa korvauksia. Hakekaa minun rahastonhaltijani.”<br />
<br />
Rahastonhaltija löytyi pian ja saapui kumarrellen huoneeseen. Hänelle selitettiin tilanne, ja hän teki laskelmia hetken.<br />
<br />
“Minusta näyttää siltä,” rahastonhaltija sanoi, “Että koko kansan lääkitseminen ja muut kustannukset yhteen laskettuna lääkkeen ostamisen lisäksi teille tulee kustannuksia 60:n kultarahan verran. Joten ottamalla tämän lääkkeen te pystytte estämään 20 sairautta yhteensä 80:llä kultarahalla. Siis neljä rahaa yhdestä estetystä sairaudesta.”<br />
<br />
“Kiitos,” kuningas sanoi, “Mutta älä poistu vielä. Uskon, että teitä tarvitaan vielä. Haluan kuulla myös toisen lääkkeen tarjouksen.”<br />
<br />
“Teidän majesteettinne,” sanoi toinen tietäjä, “Minun on myönnettävä heti, että minun lääkkeni on kalliimpi, hyvin paljonkin, kuin kilpailijani lääke. Se maksaisi teille jopa 80 kultarahaa. Mutta ennen kuin hylkäätte minun tarjoukseni, kuulkaa tämä. Se toimii paremmin. Se estää jopa puolet sairastumisista. Se tarkoittaa 30:tä estettyä sairautta valtakunnassanne.”<br />
<br />
Kuningas katsoi odottavasti rahastonhaltijaansa. Tämä ymmärsi vihjeen ja alkoi jälleen laskea.<br />
<br />
“Hinta, jonka maksatte lisäksi, on noin 70 kultarahaa tämän lääkkeen valitessanne, teidän korkeutenne,” hän sanoi hetken kuluttua, “Tämä kuulostaa paljolta, mutta maksaisitte jokaisesta estetystä sairaudesta vain 5 kultarahaa. Se on toki enemmän, kuin 4, mutta ei paljon.”<br />
<br />
“Hyvä on,” kuningas sanoi.<br />
<br />
“Kuitenkin, haluan vielä jatkaa,” rahastonhaltija sanoi, “Monet kollegat, joita olen tavannut, ovat olleet sitä mieltä, että sairauksien kustannuksista puhuessa pitäisi ottaa myös huomioon ihmisen kärsimys, ja laskea se mukaan kokonaiskustannuksiin. Olen puhunut myös muihin tietäjien kanssa, ja he ovat olleet samaa mieltä.”<br />
<br />
“Paljonko henkisiä kustannuksia tästä sairastamisesta sitten haluat laskea mukaan?” kuningas kysyi.<br />
<br />
“Teidän korkeutenne, olen jo pyytänyt teidän tietäjänne tänne paikalle, ja olemme tehneet siitä arvion. Olemme sitä mieltä, että jokainen sairastuminen aiheuttaa kahden kultarahan verran kärsimystä. Kun lasketaan nämä mukaan lääkkeen hankinnan hintaan ja muihin kuluihin, ensimmäisen lääkkeen kokonaishinnaksi tulee 160 kultarahaa, ja toisen 210.”<br />
<br />
“Haluan vetäytyä miettimään tätä päätöstä neuvonantajieni kanssa,” kuningas sanoi kaikille, “Ilmoitamme päätöksemme huomenna. Järjestäkää tietäjävieraillemme yösija ja muonitusta.”<br />
<br />
Niin kuningas vetäytyi viiden neuvonantajansa kanssa keskustelemaan lääkkeiden hankinnasta. He puhuivat kauan, mutta eivät päässeet mihinkään lopputulokseen.<br />
<br />
“Teidän tulisi valita ensimmäinen lääke,” ensimmäinen neuvonantaja sanoi, “Sillä se on halvin ostaa. Teillä on kulta tiukilla tähän aikaan vuodesta.”<br />
<br />
“Olen samaa mieltä,” toinen neuvonantaja sanoi, “Mutta minusta se pitäisi valita, koska sen kokonaishinta jää pienimmäksi. Ei sillä ole väliä, millä hinnalla lääkkeen tietäjältä ostamme.”<br />
<br />
“Minä taas olen sitä mieltä,” kolmas sanoi, “Että sillä ei ole väliä, mikä kokonaishinta on. Meidän pitäisi valita ensimmäinen vaihtoehto, sillä jokainen estetty sairaus on halvempi, kuin toisessa vaihtoehdossa.”<br />
<br />
Kaksi muuta olivat kuitenkin eri mieltä.<br />
<br />
“Ei, meidän pitäisi valita toinen lääke!” neljäs puuskahti, “Teidän ei pitäisi välittää rahasta, teidän korkeutenne. Teidän pitäisi aina laittaa kansanne etu ensimmäiseksi. Siksi teidän tulisi valita se lääke, joka estää enemmän sairauksia.”<br />
<br />
“No, olen tavallaan samaa mieltä,” sanoi viimeinen, “Teidän pitäisi valita toinen lääke, mutta ei suinkaan ehdoitta. Mikäli sen hinta olisi vielä korkeampi, valinta voisi olla tiukka. Viisi kultarahaa jokaisesta estetystä sairaudesta ei ole liian paljon.”<br />
<br />
Kaikki neuvonantajat olivat siis eri mieltä, joten kuninkaan oli itse päätettävä, mitä tehdä.<br />
<br />
'''Kenen neuvonantajan ohjeita kuninkaan pitäisi kuunnella?<br />
<br />
<br />
<rcode embed=1 label="Poista kyselyn vastaus" showcode=-1 variables="<br />
category:Pääsivun vastauksien poisto|<br />
name:jaeid|description:Poistettavan vastauksen ID|type:text|<br />
name:syy|description:Poiston syy|type:selection|options:<br />
;- Valitse syy -;<br />
'Testivastaus';Testivastaus;<br />
'Tuplapostaus';Tuplapostaus;<br />
'Spam';Spam (käytä säästellen)|<br />
name:ident|type:hidden|default:'{{1|Op_fi4524}}'|<br />
name:pagename|type:hidden|default:'Pneumokokkirokotekysely'<br />
"><br />
library(OpasnetUtils)<br />
<br />
jaeid <- gsub("\\s", "", unlist(strsplit(jaeid, ",")))<br />
dat <- data.frame(<br />
Versio = 1,<br />
Aika = date(), <br />
Käyttäjä = wiki_username,<br />
Syy = syy, <br />
Result = jaeid<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Poistot", <br />
act_type = "append", <br />
language = "fin",<br />
who = wiki_username<br />
)<br />
<br />
oprint("Vastaukset onnistuneesti poistettu.\n")<br />
<br />
pois <- opbase.data(ident, subset = "Kysely")<br />
<br />
oprint(pois[pois$KyselyID == jaeid , ], include.rownames = FALSE)<br />
<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Keskustelu:Pneumokokkirokotekysely&diff=25458Keskustelu:Pneumokokkirokotekysely2014-08-15T13:13:02Z<p>Sharp: </p>
<hr />
<div>'''1. Ikäsi'''<br />
<br />
☐ alle 20<br />
☐ 21-30<br />
☐ 31-60<br />
☐ yli 61<br />
<br />
'''2. Katso kyselyn alla olevaa taulukkoa kahden eri rokotteen hinnoista ja hyödyistä. Kumpi rokote mielestäsi pitäisi valita ja miksi?<br />
<br />
☐ Rokote A, koska se on halvempi rokote.<br />
<br />
☐ Rokote A, koska sen kokonaiskustannukset ovat pienemmät.<br />
<br />
☐ Rokote A, koska se maksaa vähemmän yhtä sairastumisen estoa kohti.<br />
<br />
☐ Rokote B, koska se vähentää sairastamista enemmän, rahasta ei väliä.<br />
<br />
☐ Rokote B, koska 5 kultarahaa ei ole liikaa yhden sairastumisen estämisestä 4:ään verrattuna.<br />
<br />
☐ Ei voi sanoa, koska jokin muu asia on tärkeintä. (Tarkenna alla olevaan tilaan)<br />
<br />
Kommentteja tai tarkennuksia kysymykseen 2 liittyen:<br />
<br />
<br />
<br />
<br />
<br />
<br />
'''3. Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden elinvuoden* säästämiseen?'''<br />
<br />
☐ Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.<br />
<br />
☐ Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.<br />
<br />
☐ Terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen yli __________ mutta alle ___________ euroa<br />
<br />
☐ Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat per elinvuosi halvempia kuin __________ euroa.<br />
<br />
'''4. Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?'''<br />
<br />
☐ Tehdä rokotukset pakollisiksi kaikille.<br />
<br />
☐ Vaaditaan voimassa olevat rokotukset esim. koululaisilta.<br />
<br />
☐ Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.<br />
<br />
☐ Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.<br />
<br />
☐ Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.<br />
<br />
'''5. Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)'''<br />
<br />
☐ Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.<br />
<br />
☐ Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.<br />
<br />
☐ Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.;<br />
<br />
☐ Rokotteen hinta ja muut siitä yhteiskunnalle koituvat kustannukset.<br />
<br />
☐ Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mitkään kaksi niistä eivät riitä.<br />
<br />
☐ Muu, mikä? ________________________________________________________________________________________________________<br />
<br />
'''6. Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.'''<br />
<br />
☐ Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla;<br />
<br />
☐ Korkea kuume<br />
<br />
☐ Kouristukset<br />
<br />
☐ Tilapäinen hengityskatkos<br />
<br />
☐ Vakavat allergiset reaktiot<br />
<br />
☐ Kollapsi eli lihasten äkillinen veltostuminen<br />
<br />
☐ Narkolepsia (pitkäaikainen haitta)<br />
<br />
'''7. Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Onko sinulla yleistä, johonkin kysymykseen liittyvää lisättävää, mitä et saanut vastauksissa esille, tai muita kommentteja?'''<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<nowiki>*</nowiki> Menetetyiksi elinvuosiksi lasketaan jokainen ennenaikaisen kuoleman takia menetetty elinvuosi, sekä sairaana vietetty aika. Eri taudeilla on laskemista varten eri painokertoimia, väliltä 0 (=täysin terve) ja 1 (=kuollut). Esimerkiksi vakavan tartuntataudin kerroin on WHO:n mukaan 0,210. Aika sairaana kerrotaan kertoimella, jonka jälkeen saatuja suhteellisia aijanjaksoja lasketaan yhteen vuoden mittaiseksi pätkäksi. Tämän vuoden ei tarvitse olla yhden ihmisen yhtenäinen elinvuosi, vaan voi koostua monen ihmisen päivästä kuukausiin (tai jopa vuosiin) mittaisista sairaana vietetyistä ajanjaksoista. Tarkempi kuvaus sivulla [[Tautitaakka]].<br />
<br />
'''Kysymyksen 2 taustamateriaali'''<br />
<br />
{| {{prettytable}}<br />
|+'''Rokottamisesta koituvat hyödyt ja kustannukset<br />
|-<br />
| || '''Hinta''' || '''Kustannus''' || '''Sairaustapaukset''' || '''Hinta/Säästettävä sairaustapaus''' || '''Sairastamisen hinta''' || '''Kokonaiskustannus'''<br />
|-<br />
| '''Rokote A''' ||align="center"| 20 ||align="center"| 60 ||align="center"| 40 ||align="center"| 4 ||align="center" rowspan="3"| 2 ||align="center"| 160<br />
|-<br />
| '''Rokote B''' || align="center"| 80 || align="center"| 70 || align="center"| 30 || align="center"| 5 || align="center"| 210<br />
|-<br />
| '''Ei rokoteta''' || align="center"| 0 || align="center"| 120 || align="center"| 60 || align="center"| - || align="center"| 240<br />
|}<br />
<br />
Yllä olevassa taulukossa näet esimerkin tilanteesta, jossa tehdään päätöstä kahden eri rokotteen ostamisen ja käyttämisen väliltä.<br />
*Ensimmäinen sarake, eli '''hinta''', kertoo rokotteen hankkimiseen tarvittavan rahamäärän kultarahoina. Rokotteen A ostaminen kaikille maksaa siis 20 kultarahaa, ja rokotteen B ostaminen 80.<br />
*Toinen sarake, '''kustannus''', laskee yhteen muut rokotteen käytöstä tai käyttämättömyydestä tulevat kustannukset. Siihen kuuluvat rokottamisestai huolimatta tulevat sairaustapauksista aiheutuvat kustannukset sekä sairastamisesta aiheutuneet työpoissaoloista johtuvat kustannukset yksittäisille ihmisille.<br />
*'''Sairaustapaukset''' kertovat, montako ihmistä sairastuu rokotteen estämään tautiin rokotten saamisesta huolimatta, tai kokonaan ilman sitä.<br />
*'''Hinta/säästettävä sairaustapaus''' on rokotteen hinta+kustannus jaettuna sillä määrällä, kuinka monta sairastapausta rokotteen ottaminen estää, eli 60 (sairastapausten määrä ilman rokotetta) - sairaustapausten määrä rokotteen kanssa. Se kertoo, kuinka monta kultarahaa maksetaan siitä, että yksi ihminen ei sairastu tautiin.<br />
*'''Sairastamisen hinta''' kertoo siitä, kuinka iäväksi asiantuntijat arvioivat taudin sairastamisen. Tälle sairastammiselle henkisesti ja fyysisesti kärsimiselle on annettu rahallinen arvo, tässä tapauksessa 2 kultarahaa, joka on sairastamisen hinta. Näin voidaan rahallisesti arvioida, kuinka paljon kärsimistä syntyy, kun 60 ihmistä saa taudin.<br />
*'''Kokonaiskustannuksiin''' on laskettu yhteen hinta, kustannukset sekä sairastamisen hinta kerrottuna sairaustapausten määrällä.<br />
<br />
<br />
'''2. kysymyksen taustatiedot vaihtoehtoisessa muodossa:<br />
<br />
Olipa kerran kuningas. Hän hallitsi pientä valtakuntaa. Hyvin pientä. Oikeastaan se oli enemmänkin kylä kuin valtakunta. Hänen valtakunnassaan asui vain parisataa ihmistä.<br />
<br />
Eräänä päivänä hänen luokseen tuli kolme miestä. Ensimmäinen heistä oli kuninkaan omia miehiä, hänen pienen armeijansa johtaja. Toiset kaksi tulivat naapurivaltakunnista, ja olivat näiden valtakuntien tieteilijöitä.<br />
<br />
“Teidän majesteettinne,” sanoi armeijan johtaja, “Tuon teille huonoja uutisia naapureiltamme. Niissä on puhjennut ja lähtenyt kiertoon epidemia, joka on matkalla meidän pieneen valtakuntaamme. Se ei ole vielä tappanut ketään, mutta se on erittäin epämiellyttävä niille, jotka sen saavat. Tauti on muissa valtakunnissa tarttunut lähes kolmasosaan kansasta. Tämä tarkoittaa noin 60:tä sairastavaa teidän valtakunnassanne.”<br />
<br />
“Hmm,” sanoi kunungas, mietteliäänä, “Meidän täytyy ryhtyä varotoimiin.”<br />
<br />
“Sitä varten minä toin mukanani nämä kaksi miestä,” armeijan johtaja sanoi, “He ovat tietäjiä kahdesta läheisimmästä valtakunnasta. He ovat kertoneet minulle kehittäneensä lääkkeen, joka estää tätä tautia tarttumasta ihmisestä toiseen. Se pistetään suoraan ihoon neulalla, ja se hidastaa taudin leviämistä, ja jotkut eivät sen ansiosta saa tautia lainkaan. He ovat täällä valmiina auttamaan meitä, mutta heillä on hintansa.”<br />
<br />
“Antaa heidän puhua,” kuningas sanoi ja viittasi ensimmäistä tiedemisetä astumaan esiin.<br />
<br />
“Teidän korkautenne,” tieteilijä sanoi, “Minä tuon teille tarjouksen lääkkeestä, jonka olen kehitellyt. Saatte sen koko kansallenne vain 20:llä kultarahalla.”<br />
<br />
“Kaksikymmentä kultarahaa ei todellakaan ole paljon jostain tällaisesta,” kuningas myönsi, “Miten hyvin se toimii? Kuinka moni kansastani olisi turvassa?”<br />
<br />
“Olemme todenneet sen vähentävän sairastuneiden määrää kolmanneksella.”<br />
<br />
“Joten edelleen 40 kansalaistani tulee sairastumaan sinun lääkkeesi avulla,” kuningas pohti ääneen, “Joten heitä täytyy hoitaa. Ja uskon, että lääkkeen jakeluun tarvitaan myös ihmisiä, joille pitäisi maksaa korvauksia. Hakekaa minun rahastonhaltijani.”<br />
<br />
Rahastonhaltija löytyi pian ja saapui kumarrellen huoneeseen. Hänelle selitettiin tilanne, ja hän teki laskelmia hetken.<br />
<br />
“Minusta näyttää siltä,” rahastonhaltija sanoi, “Että koko kansan lääkitseminen ja muut kustannukset yhteen laskettuna lääkkeen ostamisen lisäksi teille tulee kustannuksia 60:n kultarahan verran. Joten ottamalla tämän lääkkeen te pystytte estämään 20 sairautta yhteensä 80:llä kultarahalla. Siis neljä rahaa yhdestä estetystä sairaudesta.”<br />
<br />
“Kiitos,” kuningas sanoi, “Mutta älä poistu vielä. Uskon, että teitä tarvitaan vielä. Haluan kuulla myös toisen lääkkeen tarjouksen.”<br />
<br />
“Teidän majesteettinne,” sanoi toinen tietäjä, “Minun on myönnettävä heti, että minun lääkkeni on kalliimpi, hyvin paljonkin, kuin kilpailijani lääke. Se maksaisi teille jopa 80 kultarahaa. Mutta ennen kuin hylkäätte minun tarjoukseni, kuulkaa tämä. Se toimii paremmin. Se estää jopa puolet sairastumisista. Se tarkoittaa 30:tä estettyä sairautta valtakunnassanne.”<br />
<br />
Kuningas katsoi odottavasti rahastonhaltijaansa. Tämä ymmärsi vihjeen ja alkoi jälleen laskea.<br />
<br />
“Hinta, jonka maksatte lisäksi, on noin 70 kultarahaa tämän lääkkeen valitessanne, teidän korkeutenne,” hän sanoi hetken kuluttua, “Tämä kuulostaa paljolta, mutta maksaisitte jokaisesta estetystä sairaudesta vain 5 kultarahaa. Se on toki enemmän, kuin 4, mutta ei paljon.”<br />
<br />
“Hyvä on,” kuningas sanoi.<br />
<br />
“Kuitenkin, haluan vielä jatkaa,” rahastonhaltija sanoi, “Monet kollegat, joita olen tavannut, ovat olleet sitä mieltä, että sairauksien kustannuksista puhuessa pitäisi ottaa myös huomioon ihmisen kärsimys, ja laskea se mukaan kokonaiskustannuksiin. Olen puhunut myös muihin tietäjien kanssa, ja he ovat olleet samaa mieltä.”<br />
<br />
“Paljonko henkisiä kustannuksia tästä sairastamisesta sitten haluat laskea mukaan?” kuningas kysyi.<br />
<br />
“Teidän korkeutenne, olen jo pyytänyt teidän tietäjänne tänne paikalle, ja olemme tehneet siitä arvion. Olemme sitä mieltä, että jokainen sairastuminen aiheuttaa kahden kultarahan verran kärsimystä. Kun lasketaan nämä mukaan lääkkeen hankinnan hintaan ja muihin kuluihin, ensimmäisen lääkkeen kokonaishinnaksi tulee 160 kultarahaa, ja toisen 210.”<br />
<br />
“Haluan vetäytyä miettimään tätä päätöstä neuvonantajieni kanssa,” kuningas sanoi kaikille, “Ilmoitamme päätöksemme huomenna. Järjestäkää tietäjävieraillemme yösija ja muonitusta.”<br />
<br />
Niin kuningas vetäytyi viiden neuvonantajansa kanssa keskustelemaan lääkkeiden hankinnasta. He puhuivat kauan, mutta eivät päässeet mihinkään lopputulokseen.<br />
<br />
“Teidän tulisi valita ensimmäinen lääke,” ensimmäinen neuvonantaja sanoi, “Sillä se on halvin ostaa. Teillä on kulta tiukilla tähän aikaan vuodesta.”<br />
<br />
“Olen samaa mieltä,” toinen neuvonantaja sanoi, “Mutta minusta se pitäisi valita, koska sen kokonaishinta jää pienimmäksi. Ei sillä ole väliä, millä hinnalla lääkkeen tietäjältä ostamme.”<br />
<br />
“Minä taas olen sitä mieltä,” kolmas sanoi, “Että sillä ei ole väliä, mikä kokonaishinta on. Meidän pitäisi valita ensimmäinen vaihtoehto, sillä jokainen estetty sairaus on halvempi, kuin toisessa vaihtoehdossa.”<br />
<br />
Kaksi muuta olivat kuitenkin eri mieltä.<br />
<br />
“Ei, meidän pitäisi valita toinen lääke!” neljäs puuskahti, “Teidän ei pitäisi välittää rahasta, teidän korkeutenne. Teidän pitäisi aina laittaa kansanne etu ensimmäiseksi. Siksi teidän tulisi valita se lääke, joka estää enemmän sairauksia.”<br />
<br />
“No, olen tavallaan samaa mieltä,” sanoi viimeinen, “Teidän pitäisi valita toinen lääke, mutta ei suinkaan ehdoitta. Mikäli sen hinta olisi vielä korkeampi, valinta voisi olla tiukka. Viisi kultarahaa jokaisesta estetystä sairaudesta ei ole liian paljon.”<br />
<br />
Kaikki neuvonantajat olivat siis eri mieltä, joten kuninkaan oli itse päätettävä, mitä tehdä.<br />
<br />
'''Kenen neuvonantajan ohjeita kuninkaan pitäisi kuunnella?<br />
<br />
<br />
<rcode embed=1 label="Poista kyselyn vastaus" showcode=-1 variables="<br />
category:Pääsivun vastauksien poisto|<br />
name:jaeid|description:Poistettavan vastauksen ID|type:text|<br />
name:syy|description:Poiston syy|type:selection|options:<br />
;- Valitse syy -;<br />
'Testivastaus';Testivastaus;<br />
'Tuplapostaus';Tuplapostaus;<br />
'Spam';Spam (käytä säästellen)|<br />
name:ident|type:hidden|default:'{{{1|Op_fi4524}}'|<br />
name:pagename|type:hidden|default:'Pneumokokkirokotekysely'<br />
"><br />
library(OpasnetUtils)<br />
<br />
jaeid <- gsub("\\s", "", unlist(strsplit(jaeid, ",")))<br />
dat <- data.frame(<br />
Versio = 1,<br />
Aika = date(), <br />
Käyttäjä = wiki_username,<br />
Syy = syy, <br />
Result = jaeid<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Poistot", <br />
act_type = "append", <br />
language = "fin",<br />
who = wiki_username<br />
)<br />
<br />
oprint("Vastaukset onnistuneesti poistettu.\n")<br />
<br />
pois <- opbase.data(ident, subset = "Kysely")<br />
<br />
oprint(pois[pois$KyselyID == jaeid , ], include.rownames = FALSE)<br />
<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Keskustelu:Pneumokokkirokotekysely&diff=25457Keskustelu:Pneumokokkirokotekysely2014-08-15T13:11:44Z<p>Sharp: </p>
<hr />
<div>'''1. Ikäsi'''<br />
<br />
☐ alle 20<br />
☐ 21-30<br />
☐ 31-60<br />
☐ yli 61<br />
<br />
'''2. Katso kyselyn alla olevaa taulukkoa kahden eri rokotteen hinnoista ja hyödyistä. Kumpi rokote mielestäsi pitäisi valita ja miksi?<br />
<br />
☐ Rokote A, koska se on halvempi rokote.<br />
<br />
☐ Rokote A, koska sen kokonaiskustannukset ovat pienemmät.<br />
<br />
☐ Rokote A, koska se maksaa vähemmän yhtä sairastumisen estoa kohti.<br />
<br />
☐ Rokote B, koska se vähentää sairastamista enemmän, rahasta ei väliä.<br />
<br />
☐ Rokote B, koska 5 kultarahaa ei ole liikaa yhden sairastumisen estämisestä 4:ään verrattuna.<br />
<br />
☐ Ei voi sanoa, koska jokin muu asia on tärkeintä. (Tarkenna alla olevaan tilaan)<br />
<br />
Kommentteja tai tarkennuksia kysymykseen 2 liittyen:<br />
<br />
<br />
<br />
<br />
<br />
<br />
'''3. Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden elinvuoden* säästämiseen?'''<br />
<br />
☐ Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.<br />
<br />
☐ Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.<br />
<br />
☐ Terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen yli __________ mutta alle ___________ euroa<br />
<br />
☐ Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat per elinvuosi halvempia kuin __________ euroa.<br />
<br />
'''4. Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?'''<br />
<br />
☐ Tehdä rokotukset pakollisiksi kaikille.<br />
<br />
☐ Vaaditaan voimassa olevat rokotukset esim. koululaisilta.<br />
<br />
☐ Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.<br />
<br />
☐ Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.<br />
<br />
☐ Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.<br />
<br />
'''5. Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)'''<br />
<br />
☐ Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.<br />
<br />
☐ Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.<br />
<br />
☐ Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.;<br />
<br />
☐ Rokotteen hinta ja muut siitä yhteiskunnalle koituvat kustannukset.<br />
<br />
☐ Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mitkään kaksi niistä eivät riitä.<br />
<br />
☐ Muu, mikä? ________________________________________________________________________________________________________<br />
<br />
'''6. Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.'''<br />
<br />
☐ Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla;<br />
<br />
☐ Korkea kuume<br />
<br />
☐ Kouristukset<br />
<br />
☐ Tilapäinen hengityskatkos<br />
<br />
☐ Vakavat allergiset reaktiot<br />
<br />
☐ Kollapsi eli lihasten äkillinen veltostuminen<br />
<br />
☐ Narkolepsia (pitkäaikainen haitta)<br />
<br />
'''7. Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Onko sinulla yleistä, johonkin kysymykseen liittyvää lisättävää, mitä et saanut vastauksissa esille, tai muita kommentteja?'''<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<nowiki>*</nowiki> Menetetyiksi elinvuosiksi lasketaan jokainen ennenaikaisen kuoleman takia menetetty elinvuosi, sekä sairaana vietetty aika. Eri taudeilla on laskemista varten eri painokertoimia, väliltä 0 (=täysin terve) ja 1 (=kuollut). Esimerkiksi vakavan tartuntataudin kerroin on WHO:n mukaan 0,210. Aika sairaana kerrotaan kertoimella, jonka jälkeen saatuja suhteellisia aijanjaksoja lasketaan yhteen vuoden mittaiseksi pätkäksi. Tämän vuoden ei tarvitse olla yhden ihmisen yhtenäinen elinvuosi, vaan voi koostua monen ihmisen päivästä kuukausiin (tai jopa vuosiin) mittaisista sairaana vietetyistä ajanjaksoista. Tarkempi kuvaus sivulla [[Tautitaakka]].<br />
<br />
'''Kysymyksen 2 taustamateriaali'''<br />
<br />
{| {{prettytable}}<br />
|+'''Rokottamisesta koituvat hyödyt ja kustannukset<br />
|-<br />
| || '''Hinta''' || '''Kustannus''' || '''Sairaustapaukset''' || '''Hinta/Säästettävä sairaustapaus''' || '''Sairastamisen hinta''' || '''Kokonaiskustannus'''<br />
|-<br />
| '''Rokote A''' ||align="center"| 20 ||align="center"| 60 ||align="center"| 40 ||align="center"| 4 ||align="center" rowspan="3"| 2 ||align="center"| 160<br />
|-<br />
| '''Rokote B''' || align="center"| 80 || align="center"| 70 || align="center"| 30 || align="center"| 5 || align="center"| 210<br />
|-<br />
| '''Ei rokoteta''' || align="center"| 0 || align="center"| 120 || align="center"| 60 || align="center"| - || align="center"| 240<br />
|}<br />
<br />
Yllä olevassa taulukossa näet esimerkin tilanteesta, jossa tehdään päätöstä kahden eri rokotteen ostamisen ja käyttämisen väliltä.<br />
*Ensimmäinen sarake, eli '''hinta''', kertoo rokotteen hankkimiseen tarvittavan rahamäärän kultarahoina. Rokotteen A ostaminen kaikille maksaa siis 20 kultarahaa, ja rokotteen B ostaminen 80.<br />
*Toinen sarake, '''kustannus''', laskee yhteen muut rokotteen käytöstä tai käyttämättömyydestä tulevat kustannukset. Siihen kuuluvat rokottamisestai huolimatta tulevat sairaustapauksista aiheutuvat kustannukset sekä sairastamisesta aiheutuneet työpoissaoloista johtuvat kustannukset yksittäisille ihmisille.<br />
*'''Sairaustapaukset''' kertovat, montako ihmistä sairastuu rokotteen estämään tautiin rokotten saamisesta huolimatta, tai kokonaan ilman sitä.<br />
*'''Hinta/säästettävä sairaustapaus''' on rokotteen hinta+kustannus jaettuna sillä määrällä, kuinka monta sairastapausta rokotteen ottaminen estää, eli 60 (sairastapausten määrä ilman rokotetta) - sairaustapausten määrä rokotteen kanssa. Se kertoo, kuinka monta kultarahaa maksetaan siitä, että yksi ihminen ei sairastu tautiin.<br />
*'''Sairastamisen hinta''' kertoo siitä, kuinka iäväksi asiantuntijat arvioivat taudin sairastamisen. Tälle sairastammiselle henkisesti ja fyysisesti kärsimiselle on annettu rahallinen arvo, tässä tapauksessa 2 kultarahaa, joka on sairastamisen hinta. Näin voidaan rahallisesti arvioida, kuinka paljon kärsimistä syntyy, kun 60 ihmistä saa taudin.<br />
*'''Kokonaiskustannuksiin''' on laskettu yhteen hinta, kustannukset sekä sairastamisen hinta kerrottuna sairaustapausten määrällä.<br />
<br />
<br />
'''2. kysymyksen taustatiedot vaihtoehtoisessa muodossa:<br />
<br />
Olipa kerran kuningas. Hän hallitsi pientä valtakuntaa. Hyvin pientä. Oikeastaan se oli enemmänkin kylä kuin valtakunta. Hänen valtakunnassaan asui vain parisataa ihmistä.<br />
<br />
Eräänä päivänä hänen luokseen tuli kolme miestä. Ensimmäinen heistä oli kuninkaan omia miehiä, hänen pienen armeijansa johtaja. Toiset kaksi tulivat naapurivaltakunnista, ja olivat näiden valtakuntien tieteilijöitä.<br />
<br />
“Teidän majesteettinne,” sanoi armeijan johtaja, “Tuon teille huonoja uutisia naapureiltamme. Niissä on puhjennut ja lähtenyt kiertoon epidemia, joka on matkalla meidän pieneen valtakuntaamme. Se ei ole vielä tappanut ketään, mutta se on erittäin epämiellyttävä niille, jotka sen saavat. Tauti on muissa valtakunnissa tarttunut lähes kolmasosaan kansasta. Tämä tarkoittaa noin 60:tä sairastavaa teidän valtakunnassanne.”<br />
<br />
“Hmm,” sanoi kunungas, mietteliäänä, “Meidän täytyy ryhtyä varotoimiin.”<br />
<br />
“Sitä varten minä toin mukanani nämä kaksi miestä,” armeijan johtaja sanoi, “He ovat tietäjiä kahdesta läheisimmästä valtakunnasta. He ovat kertoneet minulle kehittäneensä lääkkeen, joka estää tätä tautia tarttumasta ihmisestä toiseen. Se pistetään suoraan ihoon neulalla, ja se hidastaa taudin leviämistä, ja jotkut eivät sen ansiosta saa tautia lainkaan. He ovat täällä valmiina auttamaan meitä, mutta heillä on hintansa.”<br />
<br />
“Antaa heidän puhua,” kuningas sanoi ja viittasi ensimmäistä tiedemisetä astumaan esiin.<br />
<br />
“Teidän korkautenne,” tieteilijä sanoi, “Minä tuon teille tarjouksen lääkkeestä, jonka olen kehitellyt. Saatte sen koko kansallenne vain 20:llä kultarahalla.”<br />
<br />
“Kaksikymmentä kultarahaa ei todellakaan ole paljon jostain tällaisesta,” kuningas myönsi, “Miten hyvin se toimii? Kuinka moni kansastani olisi turvassa?”<br />
<br />
“Olemme todenneet sen vähentävän sairastuneiden määrää kolmanneksella.”<br />
<br />
“Joten edelleen 40 kansalaistani tulee sairastumaan sinun lääkkeesi avulla,” kuningas pohti ääneen, “Joten heitä täytyy hoitaa. Ja uskon, että lääkkeen jakeluun tarvitaan myös ihmisiä, joille pitäisi maksaa korvauksia. Hakekaa minun rahastonhaltijani.”<br />
<br />
Rahastonhaltija löytyi pian ja saapui kumarrellen huoneeseen. Hänelle selitettiin tilanne, ja hän teki laskelmia hetken.<br />
<br />
“Minusta näyttää siltä,” rahastonhaltija sanoi, “Että koko kansan lääkitseminen ja muut kustannukset yhteen laskettuna lääkkeen ostamisen lisäksi teille tulee kustannuksia 60:n kultarahan verran. Joten ottamalla tämän lääkkeen te pystytte estämään 20 sairautta yhteensä 80:llä kultarahalla. Siis neljä rahaa yhdestä estetystä sairaudesta.”<br />
<br />
“Kiitos,” kuningas sanoi, “Mutta älä poistu vielä. Uskon, että teitä tarvitaan vielä. Haluan kuulla myös toisen lääkkeen tarjouksen.”<br />
<br />
“Teidän majesteettinne,” sanoi toinen tietäjä, “Minun on myönnettävä heti, että minun lääkkeni on kalliimpi, hyvin paljonkin, kuin kilpailijani lääke. Se maksaisi teille jopa 80 kultarahaa. Mutta ennen kuin hylkäätte minun tarjoukseni, kuulkaa tämä. Se toimii paremmin. Se estää jopa puolet sairastumisista. Se tarkoittaa 30:tä estettyä sairautta valtakunnassanne.”<br />
<br />
Kuningas katsoi odottavasti rahastonhaltijaansa. Tämä ymmärsi vihjeen ja alkoi jälleen laskea.<br />
<br />
“Hinta, jonka maksatte lisäksi, on noin 70 kultarahaa tämän lääkkeen valitessanne, teidän korkeutenne,” hän sanoi hetken kuluttua, “Tämä kuulostaa paljolta, mutta maksaisitte jokaisesta estetystä sairaudesta vain 5 kultarahaa. Se on toki enemmän, kuin 4, mutta ei paljon.”<br />
<br />
“Hyvä on,” kuningas sanoi.<br />
<br />
“Kuitenkin, haluan vielä jatkaa,” rahastonhaltija sanoi, “Monet kollegat, joita olen tavannut, ovat olleet sitä mieltä, että sairauksien kustannuksista puhuessa pitäisi ottaa myös huomioon ihmisen kärsimys, ja laskea se mukaan kokonaiskustannuksiin. Olen puhunut myös muihin tietäjien kanssa, ja he ovat olleet samaa mieltä.”<br />
<br />
“Paljonko henkisiä kustannuksia tästä sairastamisesta sitten haluat laskea mukaan?” kuningas kysyi.<br />
<br />
“Teidän korkeutenne, olen jo pyytänyt teidän tietäjänne tänne paikalle, ja olemme tehneet siitä arvion. Olemme sitä mieltä, että jokainen sairastuminen aiheuttaa kahden kultarahan verran kärsimystä. Kun lasketaan nämä mukaan lääkkeen hankinnan hintaan ja muihin kuluihin, ensimmäisen lääkkeen kokonaishinnaksi tulee 160 kultarahaa, ja toisen 210.”<br />
<br />
“Haluan vetäytyä miettimään tätä päätöstä neuvonantajieni kanssa,” kuningas sanoi kaikille, “Ilmoitamme päätöksemme huomenna. Järjestäkää tietäjävieraillemme yösija ja muonitusta.”<br />
<br />
Niin kuningas vetäytyi viiden neuvonantajansa kanssa keskustelemaan lääkkeiden hankinnasta. He puhuivat kauan, mutta eivät päässeet mihinkään lopputulokseen.<br />
<br />
“Teidän tulisi valita ensimmäinen lääke,” ensimmäinen neuvonantaja sanoi, “Sillä se on halvin ostaa. Teillä on kulta tiukilla tähän aikaan vuodesta.”<br />
<br />
“Olen samaa mieltä,” toinen neuvonantaja sanoi, “Mutta minusta se pitäisi valita, koska sen kokonaishinta jää pienimmäksi. Ei sillä ole väliä, millä hinnalla lääkkeen tietäjältä ostamme.”<br />
<br />
“Minä taas olen sitä mieltä,” kolmas sanoi, “Että sillä ei ole väliä, mikä kokonaishinta on. Meidän pitäisi valita ensimmäinen vaihtoehto, sillä jokainen estetty sairaus on halvempi, kuin toisessa vaihtoehdossa.”<br />
<br />
Kaksi muuta olivat kuitenkin eri mieltä.<br />
<br />
“Ei, meidän pitäisi valita toinen lääke!” neljäs puuskahti, “Teidän ei pitäisi välittää rahasta, teidän korkeutenne. Teidän pitäisi aina laittaa kansanne etu ensimmäiseksi. Siksi teidän tulisi valita se lääke, joka estää enemmän sairauksia.”<br />
<br />
“No, olen tavallaan samaa mieltä,” sanoi viimeinen, “Teidän pitäisi valita toinen lääke, mutta ei suinkaan ehdoitta. Mikäli sen hinta olisi vielä korkeampi, valinta voisi olla tiukka. Viisi kultarahaa jokaisesta estetystä sairaudesta ei ole liian paljon.”<br />
<br />
Kaikki neuvonantajat olivat siis eri mieltä, joten kuninkaan oli itse päätettävä, mitä tehdä.<br />
<br />
'''Kenen neuvonantajan ohjeita kuninkaan pitäisi kuunnella?<br />
<br />
<br />
<rcode embed=1 label="Poista kyselyn vastaus" showcode=-1 variables="<br />
name:jaeid|description:Poistettavan kommentin ID|type:text|<br />
name:syy|description:Poiston syy|type:selection|options:<br />
;- Valitse syy -;<br />
'Testivastaus';Testivastaus;<br />
'Tuplapostaus';Tuplapostaus;<br />
'Spam';Spam (käytä säästellen)|<br />
name:ident|type:hidden|default:'{{{1|Op_fi4524}}'|<br />
name:pagename|type:hidden|default:'Pneumokokkirokotekysely'<br />
"><br />
library(OpasnetUtils)<br />
<br />
jaeid <- gsub("\\s", "", unlist(strsplit(jaeid, ",")))<br />
dat <- data.frame(<br />
Versio = 1,<br />
Aika = date(), <br />
Käyttäjä = wiki_username,<br />
Syy = syy, <br />
Result = jaeid<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Poistot", <br />
act_type = "append", <br />
language = "fin",<br />
who = wiki_username<br />
)<br />
<br />
oprint("Vastaukset onnistuneesti poistettu.\n")<br />
<br />
pois <- opbase.data(ident, subset = "Kysely")<br />
<br />
oprint(pois[pois$KyselyID == jaeid , ], include.rownames = FALSE)<br />
<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Pneumokokkirokotekysely&diff=25456Pneumokokkirokotekysely2014-08-15T13:06:18Z<p>Sharp: </p>
<hr />
<div>{|<br />
|[[kuva:thl_logo.png]] <br />
|'''Tämä on kaikille avoin kysely rokotteiden valintaperusteista erityisesti liittyen pneumokokkirokotteeseen. <br />
Kansallisen rokotusohjelman rokote on tulossa kilpailutukseen syksyllä 2014. Voit lukea lisää rokotushankinnasta ja siihen liittyvästä päätöksenteosta sivulta [[Pneumokokkirokotteen hankinta kansalliseen rokotusohjelmaan]]. Kysely ja sivusto on Terveyden ja hyvinvoinnin laitoksen ylläpitämä.<br />
|}<br />
<rcode embed=0 label="Vastaa kyselyyn" showcode=-1 variables="<br />
name:v1|description:'''1. Ikäsi'''|type:selection|options:'alle 20';alle 20;'21-30';21-30;'31-60';31-60;'yli 61';yli 61|<br />
name:v2a|description:'''2. Katso kyselyn alla olevaa taulukkoa kahden eri rokotteen hinnoista ja hyödyistä. Kumpi rokote mielestäsi pitäisi valita ja miksi?'''|type:selection|options:<br />
'Rokote A halvempi'; Rokote A, koska se on halvempi rokote.;<br />
'Rokote A kokonaiskustannukset'; Rokote A, koska sen kokonaiskustannukset ovat pienemmät.;<br />
'Rokote A kustannustehokkuus'; Rokote A, koska se maksaa vähemmän yhtä sairastumisen estoa kohti.;<br />
'Rokote B vaikuttavampi'; Rokote B, koska se vähentää sairastamista enemmän, rahasta ei väliä.;<br />
'Rokote B lisähinta kannattaa'; Rokote B, koska 5 kultarahaa ei ole liikaa yhden sairastumisen estämisestä 4:ään verrattuna.;<br />
'Muu on tärkeintä';Ei voi sanoa, koska jokin muu asia on tärkeintä. (Tarkenna alla olevaan laatikkoon)|<br />
name:v2b|description:Kommentteja tai tarkennuksia kysymykseen 2 liittyen|type:textbox|<br />
name:v3a|description:'''3. Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden elinvuoden* säästämiseen?'''|type:checkbox|options:<br />
'EVS, elintavat';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.;<br />
'EVS, ominaisuudet';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.|<br />
name:v3b|description:Terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen yli (euroa)|type:text|<br />
name:v3c|description:Mutta alle|type:text|<br />
name:v3d|description:Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat per elinvuosi halvempia kuin (euroa)|type:text|<br />
name:v4|description:'''4. Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?'''|type:checkbox|options:<br />
'Rokotukset kaikille';Tehdä rokotukset pakollisiksi kaikille.;<br />
'Rokotukset koululaisille';Vaaditaan voimassa olevat rokotukset esim. koululaisilta.;<br />
'Kannustus ja tieto';Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.;<br />
'Ilmaiset rokotukset';Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.;<br />
'Ei pidä puuttua';Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.|<br />
name:v5a|description:'''5. Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)'''|type:checkbox|options:<br />
'Kansanterveys';Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.;<br />
'Yksittäinen ihminen';Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.;<br />
'Laumasuoja';Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.;<br />
'Rahalliset kustannukset';Rokotteen hinta ja muut siitä yhteiskunnalle koituvat kustannukset.;<br />
'Kaikki yllä';Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mitkään kaksi niistä eivät riitä.|<br />
name:v5b|description:Muu, mikä?|type:textbox|<br />
name:v6|description:'''6. Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.'''|type:checkbox|options:<br />
'Kipu tai ärsytys';Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla;<br />
'Korkea kuume';Korkea kuume;<br />
'Kouristukset';Kouristukset;<br />
'Hengityskatkos';Tilapäinen hengityskatkos;<br />
'Allerginen reaktio';Vakavat allergiset reaktiot;<br />
'Kollapsi';Kollapsi eli lihasten äkillinen veltostuminen;<br />
'Narkolepsia';Narkolepsia (pitkäaikainen haitta)|<br />
name:v7|description:'''7. Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Onko sinulla yleistä, johonkin kysymykseen liittyvää lisättävää, mitä et saanut vastauksissa esille, tai muita kommentteja?'''|type:textbox|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'|<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'<br />
"><br />
library(OpasnetUtils)<br />
<br />
kysymykset <- c(<br />
"Ikä",<br />
"Rokotevalinta A200 B500",<br />
"Rokotevalinta kommentteja",<br />
"Montako euroa on yksi QALY?",<br />
"Montako euroa QALY yli",<br />
"Montako euroa QALY alle",<br />
"Montako euroa QALY vähintään, ei kiinteää ylärajaa",<br />
"Yhteiskunnan varmistama laumasuoja",<br />
"Rokotevertailuperusteet",<br />
"Rokotevertailu muu",<br />
"Kestämättömät haittavaikutukset",<br />
"Uusia kohtia ja kysymyksiä"<br />
)<br />
<br />
v3a <- paste(v3a, collapse = "; ")<br />
v4 <- paste(v4, collapse = "; ") <br />
v5a <- paste(v5a, collapse = "; ")<br />
v6 <- paste(v6, collapse = "; ")<br />
<br />
# Vähän vaarallista että mikä tahansa virhe johtaa siihen että <br />
# data tulkitaan olemassa olemattomaksi, R tietokantafunktiot ovat <br />
# jäljessä kehitystä: .series ja .locations eivät toimi subseteille.<br />
obs <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
if (!is.null(obs)) {<br />
if ("Obs" %in% colnames(obs)) {<br />
at <- "replace"<br />
obs <- 1<br />
} else {<br />
at <- "append"<br />
obs <- obs$KyselyID<br />
obs <- gsub("[A-Za-z]", "", as.character(obs))<br />
obs <- max(as.numeric(obs)) + 1<br />
}<br />
} else {<br />
at <- "replace"<br />
obs <- 1<br />
}<br />
dat <- data.frame(<br />
KyselyID = obs, <br />
Aika = date(), <br />
Kysymys = kysymykset, <br />
Result = c(v1, v2a, v2b, v3a, v3b, v3c, v3d, v4, v5a, v5b, v6, v7)<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Kysely", <br />
act_type = at, <br />
language = "fin", <br />
who = wiki_username<br />
)<br />
<br />
oprint("Kiitos. Vastauksesi on onnistuneesti tallennettu.")<br />
</rcode><br />
<br />
<rcode label="Näytä vastaukset" embed=1 showcode=-1 graphics=1 variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
library(OpasnetUtilsExt)<br />
library(ggplot2)<br />
<br />
pagename <- gsub(" ", "_", pagename)<br />
dat <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- tryCatch(<br />
opbase.data(ident, subset = "Poistot"),<br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[!dat$KyselyID %in% pois , ]<br />
<br />
ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + coord_flip()<br />
<br />
if(nrow(dat) == 0) {<br />
oprint("Kaikki kommentit on sisällytetty tekstiin.")<br />
} else {<br />
if (is.null(dat)) oprint("Vastauksia ei löytynyt") else {<br />
<br />
ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + theme_gray(base_size = 24) + coord_flip()<br />
<br />
oprint(dat, include.rownames = FALSE)<br />
}<br />
}<br />
<br />
</rcode><br />
<br />
<nowiki>*</nowiki>Menetetyiksi elinvuosiksi lasketaan jokainen ennenaikaisen kuoleman takia menetetty elinvuosi, sekä sairaana vietetty aika. Eri taudeilla on laskemista varten eri painokertoimia, väliltä 0 (=täysin terve) ja 1 (=kuollut). Esimerkiksi vakavan tartuntataudin [[:op_en:Disability weights|kerroin]] on WHO:n mukaan 0,210. Aika sairaana kerrotaan kertoimella, jonka jälkeen saatuja suhteellisia aijanjaksoja lasketaan yhteen vuoden mittaiseksi pätkäksi. Tämän vuoden ei tarvitse olla yhden ihmisen yhtenäinen elinvuosi, vaan voi koostua monen ihmisen päivästä kuukausiin (tai jopa vuosiin) mittaisista sairaana vietetyistä ajanjaksoista. Tarkempi kuvaus sivulla [[Tautitaakka]].<br />
<br />
--------------------<br />
<br><br />
KOMMENTTI: Rokotekyselyn Taulukko 2 vastaa käsittääkseni seuraavaa tilannetta<br />
<br />
kokonais lisä sairaus säästetyt <br />
kustannus kustannus(*) tapaukset sairaustap.<br />
EI ROKOTETA 120 0 60 0<br />
ROKOTE A 80 (=20+60) -40 40 20<br />
ROKOTE B 150(=80+70) 30 30 30<br />
<br />
(*) lisäkustannus verrattuna "ei rokoteta" tilanteeseen<br />
<br />
Nyt Hinta/(säästettävä sairaustapaus) on ymmärtääkseni laskettu käyttämällä<br />
hintana lukuja 80 ja 150 eli ottamatta huomioon tilanteen "ei rokoteta"<br />
kustannuksia vaikka säästetyt sairaustapaukset lasketaankin vähentyminä <br />
tilanteen "ei rokoteta" lukuihin verrattuna.<br />
<br />
Rokotteen hintana pitäisi kaiketi käyttää saraketta (*),<br />
joten rokotteella A rahaa säästyy pelkästään hoitokustannusten säästöinä<br />
ja yhden säästetyn sairaustapuksen "hintaa" tällöin vaikea määrittää.<br />
<br />
Esimerkin tilanteessa rokote A on aina kannattava (säästää rahaa) ja <br />
rokote B valitaan, jos 10 sairaustapauksen lisäsäästöstä A:han<br />
verrattuna ollaan valmiit maksamaan 70 kultarahaa eli 7 rahaa/tapaus.<br />
<br />
--[[Käyttäjä:Mnud|Markku N.]] ([[Keskustelu käyttäjästä:Mnud|keskustelu]]) 14. elokuuta 2014 kello 14.42 (UTC)<br />
<br />
------------<br />
<br><br />
<br />
'''Kysymyksen 2 taustamateriaali'''<br />
<br />
{| {{prettytable}}<br />
|+'''Rokottamisesta koituvat hyödyt ja kustannukset<br />
|-<br />
| || '''Hinta''' || '''Kustannus''' || '''Sairaustapaukset''' || '''Hinta/Säästettävä sairaustapaus''' || '''Sairastamisen hinta''' || '''Kokonaiskustannus'''<br />
|-<br />
| '''Rokote A''' ||align="center"| 20 ||align="center"| 60 ||align="center"| 40 ||align="center"| 4 ||align="center" rowspan="3"| 2 ||align="center"| 160<br />
|-<br />
| '''Rokote B''' || align="center"| 80 || align="center"| 70 || align="center"| 30 || align="center"| 5 || align="center"| 210<br />
|-<br />
| '''Ei rokoteta''' || align="center"| 0 || align="center"| 120 || align="center"| 60 || align="center"| - || align="center"| 240<br />
|}<br />
<br />
Yllä olevassa taulukossa näet esimerkin tilanteesta, jossa tehdään päätöstä kahden eri rokotteen ostamisen ja käyttämisen väliltä. Samat arvot ovat löydettävissä myös tämän selityksen alta kuvaajien muodossa.<br />
*Ensimmäinen sarake, eli '''hinta''', kertoo rokotteen hankkimiseen tarvittavan rahamäärän kultarahoina. Rokotteen A ostaminen kaikille maksaa siis 20 kultarahaa, ja rokotteen B ostaminen 80.<br />
*Toinen sarake, '''kustannus''', laskee yhteen muut rokotteen käytöstä tai käyttämättömyydestä tulevat kustannukset. Siihen kuuluvat rokottamisestai huolimatta tulevat sairaustapauksista aiheutuvat kustannukset sekä sairastamisesta aiheutuneet työpoissaoloista johtuvat kustannukset yksittäisille ihmisille.<br />
*'''Sairaustapaukset''' kertovat, montako ihmistä sairastuu rokotteen estämään tautiin rokotten saamisesta huolimatta, tai kokonaan ilman sitä.<br />
*'''Hinta/säästettävä sairaustapaus''' on rokotteen hinta+kustannus jaettuna sillä määrällä, kuinka monta sairastapausta rokotteen ottaminen estää, eli 60 (sairastapausten määrä ilman rokotetta) - sairaustapausten määrä rokotteen kanssa. Se kertoo, kuinka monta kultarahaa maksetaan siitä, että yksi ihminen ei sairastu tautiin.<br />
*'''Sairastamisen hinta''' kertoo siitä, kuinka iäväksi asiantuntijat arvioivat taudin sairastamisen. Tälle sairastammiselle henkisesti ja fyysisesti kärsimiselle on annettu rahallinen arvo, tässä tapauksessa 2 kultarahaa, joka on sairastamisen hinta. Näin voidaan rahallisesti arvioida, kuinka paljon kärsimistä syntyy, kun 60 ihmistä saa taudin.<br />
*'''Kokonaiskustannuksiin''' on laskettu yhteen hinta, kustannukset sekä sairastamisen hinta kerrottuna sairaustapausten määrällä.<br />
<br />
[[Kuva:rokotekysely.jpg]]<br />
<br />
Kysymyksen 2 taustatiedot löytyvät myös tarinan muodossa [[Keskustelu:Pneumokokkirokotekysely|keskustelusivulta]].<br />
<br />
<br />
<br />
== Kysymys ==<br />
<br />
Millainen pitäisi olla pneumokokkirokotekyselyn, jotta<br />
* sen avulla osallistuminen [[pneumokokkirokote|rokotehankintaprojektiin]] olisi helppoa,<br />
* siihen vastaaminen ei vaadi erityistä perehtyneisyyttä pneumokokkiin tai rokotteisiin,<br />
* siinä kartoitetaan erityisesti arvokysymyksiä (mm. jotta ei tarvita perehtyneisyyttä, ks. yllä),<br />
* siinä pyrkimyksenä on kartoittaa millaisia näkemyksiä on eikä niinkään niiden tarkkoja frekvenssejä väestössä?<br />
<br />
== Vastaus ==<br />
<br />
Katso yllä toteutettu kysely.<br />
<br />
== Katso myös ==<br />
<br />
{{pneumokokkirokote}}<br />
<br />
== Viitteet ==<br />
<br />
<references/><br />
<br />
* Tähän voisi kerätä viitteitä eri yhteyksissä ja eri maissa käytetyistä euroa per DALY -kustannustehokkuussuhteista.</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Pneumokokkirokotekysely&diff=25455Pneumokokkirokotekysely2014-08-15T13:01:44Z<p>Sharp: </p>
<hr />
<div>{|<br />
|[[kuva:thl_logo.png]] <br />
|'''Tämä on kaikille avoin kysely rokotteiden valintaperusteista erityisesti liittyen pneumokokkirokotteeseen. <br />
Kansallisen rokotusohjelman rokote on tulossa kilpailutukseen syksyllä 2014. Voit lukea lisää rokotushankinnasta ja siihen liittyvästä päätöksenteosta sivulta [[Pneumokokkirokotteen hankinta kansalliseen rokotusohjelmaan]]. Kysely ja sivusto on Terveyden ja hyvinvoinnin laitoksen ylläpitämä.<br />
|}<br />
<rcode embed=0 label="Vastaa kyselyyn" showcode=-1 variables="<br />
name:v1|description:'''1. Ikäsi'''|type:selection|options:'alle 20';alle 20;'21-30';21-30;'31-60';31-60;'yli 61';yli 61|<br />
name:v2a|description:'''2. Katso kyselyn alla olevaa taulukkoa kahden eri rokotteen hinnoista ja hyödyistä. Kumpi rokote mielestäsi pitäisi valita ja miksi?'''|type:selection|options:<br />
'Rokote A halvempi'; Rokote A, koska se on halvempi rokote.;<br />
'Rokote A kokonaiskustannukset'; Rokote A, koska sen kokonaiskustannukset ovat pienemmät.;<br />
'Rokote A kustannustehokkuus'; Rokote A, koska se maksaa vähemmän yhtä sairastumisen estoa kohti.;<br />
'Rokote B vaikuttavampi'; Rokote B, koska se vähentää sairastamista enemmän, rahasta ei väliä.;<br />
'Rokote B lisähinta kannattaa'; Rokote B, koska 5 kultarahaa ei ole liikaa yhden sairastumisen estämisestä 4:ään verrattuna.;<br />
'Muu on tärkeintä';Ei voi sanoa, koska jokin muu asia on tärkeintä. (Tarkenna alla olevaan laatikkoon)|<br />
name:v2b|description:Kommentteja tai tarkennuksia kysymykseen 2 liittyen|type:textbox|<br />
name:v3a|description:'''3. Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden elinvuoden* säästämiseen?'''|type:checkbox|options:<br />
'EVS, elintavat';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.;<br />
'EVS, ominaisuudet';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.|<br />
name:v3b|description:Terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen yli (euroa)|type:text|<br />
name:v3c|description:Mutta alle|type:text|<br />
name:v3d|description:Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat per elinvuosi halvempia kuin (euroa)|type:text|<br />
name:v4|description:'''4. Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?'''|type:checkbox|options:<br />
'Rokotukset kaikille';Tehdä rokotukset pakollisiksi kaikille.;<br />
'Rokotukset koululaisille';Vaaditaan voimassa olevat rokotukset esim. koululaisilta.;<br />
'Kannustus ja tieto';Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.;<br />
'Ilmaiset rokotukset';Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.;<br />
'Ei pidä puuttua';Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.|<br />
name:v5a|description:'''5. Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)'''|type:checkbox|options:<br />
'Kansanterveys';Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.;<br />
'Yksittäinen ihminen';Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.;<br />
'Laumasuoja';Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.;<br />
'Rahalliset kustannukset';Rokotteen hinta ja muut siitä yhteiskunnalle koituvat kustannukset.;<br />
'Kaikki yllä';Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mitkään kaksi niistä eivät riitä.|<br />
name:v5b|description:Muu, mikä?|type:textbox|<br />
name:v6|description:'''6. Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.'''|type:checkbox|options:<br />
'Kipu tai ärsytys';Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla;<br />
'Korkea kuume';Korkea kuume;<br />
'Kouristukset';Kouristukset;<br />
'Hengityskatkos';Tilapäinen hengityskatkos;<br />
'Allerginen reaktio';Vakavat allergiset reaktiot;<br />
'Kollapsi';Kollapsi eli lihasten äkillinen veltostuminen;<br />
'Narkolepsia';Narkolepsia (pitkäaikainen haitta)|<br />
name:v7|description:'''7. Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Onko sinulla yleistä, johonkin kysymykseen liittyvää lisättävää, mitä et saanut vastauksissa esille, tai muita kommentteja?'''|type:textbox|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'|<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'<br />
"><br />
library(OpasnetUtils)<br />
<br />
kysymykset <- c(<br />
"Ikä",<br />
"Rokotevalinta A200 B500",<br />
"Rokotevalinta kommentteja",<br />
"Montako euroa on yksi QALY?",<br />
"Montako euroa QALY yli",<br />
"Montako euroa QALY alle",<br />
"Montako euroa QALY vähintään, ei kiinteää ylärajaa",<br />
"Yhteiskunnan varmistama laumasuoja",<br />
"Rokotevertailuperusteet",<br />
"Rokotevertailu muu",<br />
"Kestämättömät haittavaikutukset",<br />
"Uusia kohtia ja kysymyksiä"<br />
)<br />
<br />
v3a <- paste(v3a, collapse = "; ")<br />
v4 <- paste(v4, collapse = "; ") <br />
v5a <- paste(v5a, collapse = "; ")<br />
v6 <- paste(v6, collapse = "; ")<br />
<br />
# Vähän vaarallista että mikä tahansa virhe johtaa siihen että <br />
# data tulkitaan olemassa olemattomaksi, R tietokantafunktiot ovat <br />
# jäljessä kehitystä: .series ja .locations eivät toimi subseteille.<br />
obs <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
if (!is.null(obs)) {<br />
if ("Obs" %in% colnames(obs)) {<br />
at <- "replace"<br />
obs <- 1<br />
} else {<br />
at <- "append"<br />
obs <- obs$KyselyID<br />
obs <- gsub("[A-Za-z]", "", as.character(obs))<br />
obs <- max(as.numeric(obs)) + 1<br />
}<br />
} else {<br />
at <- "replace"<br />
obs <- 1<br />
}<br />
dat <- data.frame(<br />
KyselyID = obs, <br />
Aika = date(), <br />
Kysymys = kysymykset, <br />
Result = c(v1, v2a, v2b, v3a, v3b, v3c, v3d, v4, v5a, v5b, v6, v7)<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Kysely", <br />
act_type = at, <br />
language = "fin", <br />
who = wiki_username<br />
)<br />
<br />
oprint("Kiitos. Vastauksesi on onnistuneesti tallennettu.")<br />
</rcode><br />
<br />
<rcode label="Näytä vastaukset" embed=1 showcode=-1 graphics=1 variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
library(OpasnetUtilsExt)<br />
library(ggplot2)<br />
<br />
pagename <- gsub(" ", "_", pagename)<br />
dat <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- tryCatch(<br />
opbase.data(ident, subset = "Poistot"),<br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[!dat$KyselyID %in% pois , ]<br />
<br />
ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + coord_flip()<br />
<br />
if(nrow(dat) == 0) {<br />
oprint("Kaikki kommentit on sisällytetty tekstiin.")<br />
} else {<br />
if (is.null(dat)) oprint("Vastauksia ei löytynyt") else {<br />
<br />
ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + theme_gray(base_size = 24) + coord_flip()<br />
<br />
oprint(dat, include.rownames = FALSE)<br />
}<br />
}<br />
<br />
</rcode><br />
<br />
<nowiki>*</nowiki>Menetetyiksi elinvuosiksi lasketaan jokainen ennenaikaisen kuoleman takia menetetty elinvuosi, sekä sairaana vietetty aika. Eri taudeilla on laskemista varten eri painokertoimia, väliltä 0 (=täysin terve) ja 1 (=kuollut). Esimerkiksi vakavan tartuntataudin [[:op_en:Disability weights|kerroin]] on WHO:n mukaan 0,210. Aika sairaana kerrotaan kertoimella, jonka jälkeen saatuja suhteellisia aijanjaksoja lasketaan yhteen vuoden mittaiseksi pätkäksi. Tämän vuoden ei tarvitse olla yhden ihmisen yhtenäinen elinvuosi, vaan voi koostua monen ihmisen päivästä kuukausiin (tai jopa vuosiin) mittaisista sairaana vietetyistä ajanjaksoista. Tarkempi kuvaus sivulla [[Tautitaakka]].<br />
<br />
--------------------<br />
<br><br />
KOMMENTTI: Rokotekyselyn Taulukko 2 vastaa käsittääkseni seuraavaa tilannetta<br />
<br />
kokonais lisä sairaus säästetyt <br />
kustannus kustannus(*) tapaukset sairaustap.<br />
EI ROKOTETA 120 0 60 0<br />
ROKOTE A 80 (=20+60) -40 40 20<br />
ROKOTE B 150(=80+70) 30 30 30<br />
<br />
(*) lisäkustannus verrattuna "ei rokoteta" tilanteeseen<br />
<br />
Nyt Hinta/(säästettävä sairaustapaus) on ymmärtääkseni laskettu käyttämällä<br />
hintana lukuja 80 ja 150 eli ottamatta huomioon tilanteen "ei rokoteta"<br />
kustannuksia vaikka säästetyt sairaustapaukset lasketaankin vähentyminä <br />
tilanteen "ei rokoteta" lukuihin verrattuna.<br />
<br />
Rokotteen hintana pitäisi kaiketi käyttää saraketta (*),<br />
joten rokotteella A rahaa säästyy pelkästään hoitokustannusten säästöinä<br />
ja yhden säästetyn sairaustapuksen "hintaa" tällöin vaikea määrittää.<br />
<br />
Esimerkin tilanteessa rokote A on aina kannattava (säästää rahaa) ja <br />
rokote B valitaan, jos 10 sairaustapauksen lisäsäästöstä A:han<br />
verrattuna ollaan valmiit maksamaan 70 kultarahaa eli 7 rahaa/tapaus.<br />
<br />
--[[Käyttäjä:Mnud|Markku N.]] ([[Keskustelu käyttäjästä:Mnud|keskustelu]]) 14. elokuuta 2014 kello 14.42 (UTC)<br />
<br />
------------<br />
<br><br />
<br />
'''Kysymyksen 2 taustamateriaali'''<br />
<br />
{| {{prettytable}}<br />
|+'''Rokottamisesta koituvat hyödyt ja kustannukset<br />
|-<br />
| || '''Hinta''' || '''Kustannus''' || '''Sairaustapaukset''' || '''Hinta/Säästettävä sairaustapaus''' || '''Sairastamisen hinta''' || '''Kokonaiskustannus'''<br />
|-<br />
| '''Rokote A''' ||align="center"| 20 ||align="center"| 60 ||align="center"| 40 ||align="center"| 4 ||align="center" rowspan="3"| 2 ||align="center"| 160<br />
|-<br />
| '''Rokote B''' || align="center"| 80 || align="center"| 70 || align="center"| 30 || align="center"| 5 || align="center"| 210<br />
|-<br />
| '''Ei rokoteta''' || align="center"| 0 || align="center"| 120 || align="center"| 60 || align="center"| - || align="center"| 240<br />
|}<br />
<br />
Yllä olevassa taulukossa näet esimerkin tilanteesta, jossa tehdään päätöstä kahden eri rokotteen ostamisen ja käyttämisen väliltä. Samat arvot ovat löydettävissä myös tämän selityksen alta kuvaajien muodossa.<br />
*Ensimmäinen sarake, eli '''hinta''', kertoo rokotteen hankkimiseen tarvittavan rahamäärän kultarahoina. Rokotteen A ostaminen kaikille maksaa siis 20 kultarahaa, ja rokotteen B ostaminen 80.<br />
*Toinen sarake, '''kustannus''', laskee yhteen muut rokotteen käytöstä tai käyttämättömyydestä tulevat kustannukset. Siihen kuuluvat rokottamisestai huolimatta tulevat sairaustapauksista aiheutuvat kustannukset sekä sairastamisesta aiheutuneet työpoissaoloista johtuvat kustannukset yksittäisille ihmisille.<br />
*'''Sairaustapaukset''' kertovat, montako ihmistä sairastuu rokotteen estämään tautiin rokotten saamisesta huolimatta, tai kokonaan ilman sitä.<br />
*'''Hinta/säästettävä sairaustapaus''' on rokotteen hinta+kustannus jaettuna sillä määrällä, kuinka monta sairastapausta rokotteen ottaminen estää, eli 60 (sairastapausten määrä ilman rokotetta) - sairaustapausten määrä rokotteen kanssa. Se kertoo, kuinka monta kultarahaa maksetaan siitä, että yksi ihminen ei sairastu tautiin.<br />
*'''Sairastamisen hinta''' kertoo siitä, kuinka iäväksi asiantuntijat arvioivat taudin sairastamisen. Tälle sairastammiselle henkisesti ja fyysisesti kärsimiselle on annettu rahallinen arvo, tässä tapauksessa 2 kultarahaa, joka on sairastamisen hinta. Näin voidaan rahallisesti arvioida, kuinka paljon kärsimistä syntyy, kun 60 ihmistä saa taudin.<br />
*'''Kokonaiskustannuksiin''' on laskettu yhteen hinta, kustannukset sekä sairastamisen hinta kerrottuna sairaustapausten määrällä.<br />
<br />
[[Kuva:rokotekysely.jpg]]<br />
<br />
Kysymyksen 2 taustatiedot löytyvät myös tarinan muodossa [[Keskustelu:Pneumokokkirokotekysely|keskustelusivulta]].<br />
<br />
<rcode embed=1 label="Poista kyselyn vastaus" showcode=-1 variables="<br />
name:jaeid|description:Poistettavan kommentin ID|type:text|<br />
name:syy|description:Poiston syy|type:selection|options:<br />
;- Valitse syy -;<br />
'Testivastaus';Testivastaus;<br />
'Tuplapostaus';Tuplapostaus;<br />
'Spam';Spam (käytä säästellen)|<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
<br />
jaeid <- gsub("\\s", "", unlist(strsplit(jaeid, ",")))<br />
dat <- data.frame(<br />
Versio = 1,<br />
Aika = date(), <br />
Käyttäjä = wiki_username,<br />
Syy = syy, <br />
Result = jaeid<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Poistot", <br />
act_type = "append", <br />
language = "fin",<br />
who = wiki_username<br />
)<br />
<br />
oprint("Vastaukset onnistuneesti poistettu.\n")<br />
<br />
pois <- opbase.data(ident, subset = "Kysely")<br />
<br />
oprint(pois[pois$KyselyID == jaeid , ], include.rownames = FALSE)<br />
<br />
</rcode><br />
<br />
== Kysymys ==<br />
<br />
Millainen pitäisi olla pneumokokkirokotekyselyn, jotta<br />
* sen avulla osallistuminen [[pneumokokkirokote|rokotehankintaprojektiin]] olisi helppoa,<br />
* siihen vastaaminen ei vaadi erityistä perehtyneisyyttä pneumokokkiin tai rokotteisiin,<br />
* siinä kartoitetaan erityisesti arvokysymyksiä (mm. jotta ei tarvita perehtyneisyyttä, ks. yllä),<br />
* siinä pyrkimyksenä on kartoittaa millaisia näkemyksiä on eikä niinkään niiden tarkkoja frekvenssejä väestössä?<br />
<br />
== Vastaus ==<br />
<br />
Katso yllä toteutettu kysely.<br />
<br />
== Katso myös ==<br />
<br />
{{pneumokokkirokote}}<br />
<br />
== Viitteet ==<br />
<br />
<references/><br />
<br />
* Tähän voisi kerätä viitteitä eri yhteyksissä ja eri maissa käytetyistä euroa per DALY -kustannustehokkuussuhteista.</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Pneumokokkirokotekysely&diff=25454Pneumokokkirokotekysely2014-08-15T12:55:08Z<p>Sharp: </p>
<hr />
<div>{|<br />
|[[kuva:thl_logo.png]] <br />
|'''Tämä on kaikille avoin kysely rokotteiden valintaperusteista erityisesti liittyen pneumokokkirokotteeseen. <br />
Kansallisen rokotusohjelman rokote on tulossa kilpailutukseen syksyllä 2014. Voit lukea lisää rokotushankinnasta ja siihen liittyvästä päätöksenteosta sivulta [[Pneumokokkirokotteen hankinta kansalliseen rokotusohjelmaan]]. Kysely ja sivusto on Terveyden ja hyvinvoinnin laitoksen ylläpitämä.<br />
|}<br />
<rcode embed=0 label="Vastaa kyselyyn" showcode=-1 variables="<br />
name:v1|description:'''1. Ikäsi'''|type:selection|options:'alle 20';alle 20;'21-30';21-30;'31-60';31-60;'yli 61';yli 61|<br />
name:v2a|description:'''2. Katso kyselyn alla olevaa taulukkoa kahden eri rokotteen hinnoista ja hyödyistä. Kumpi rokote mielestäsi pitäisi valita ja miksi?'''|type:selection|options:<br />
'Rokote A halvempi'; Rokote A, koska se on halvempi rokote.;<br />
'Rokote A kokonaiskustannukset'; Rokote A, koska sen kokonaiskustannukset ovat pienemmät.;<br />
'Rokote A kustannustehokkuus'; Rokote A, koska se maksaa vähemmän yhtä sairastumisen estoa kohti.;<br />
'Rokote B vaikuttavampi'; Rokote B, koska se vähentää sairastamista enemmän, rahasta ei väliä.;<br />
'Rokote B lisähinta kannattaa'; Rokote B, koska 5 kultarahaa ei ole liikaa yhden sairastumisen estämisestä 4:ään verrattuna.;<br />
'Muu on tärkeintä';Ei voi sanoa, koska jokin muu asia on tärkeintä. (Tarkenna alla olevaan laatikkoon)|<br />
name:v2b|description:Kommentteja tai tarkennuksia kysymykseen 2 liittyen|type:textbox|<br />
name:v3a|description:'''3. Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden elinvuoden* säästämiseen?'''|type:checkbox|options:<br />
'EVS, elintavat';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.;<br />
'EVS, ominaisuudet';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.|<br />
name:v3b|description:Terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen yli (euroa)|type:text|<br />
name:v3c|description:Mutta alle|type:text|<br />
name:v3d|description:Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat per elinvuosi halvempia kuin (euroa)|type:text|<br />
name:v4|description:'''4. Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?'''|type:checkbox|options:<br />
'Rokotukset kaikille';Tehdä rokotukset pakollisiksi kaikille.;<br />
'Rokotukset koululaisille';Vaaditaan voimassa olevat rokotukset esim. koululaisilta.;<br />
'Kannustus ja tieto';Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.;<br />
'Ilmaiset rokotukset';Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.;<br />
'Ei pidä puuttua';Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.|<br />
name:v5a|description:'''5. Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)'''|type:checkbox|options:<br />
'Kansanterveys';Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.;<br />
'Yksittäinen ihminen';Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.;<br />
'Laumasuoja';Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.;<br />
'Rahalliset kustannukset';Rokotteen hinta ja muut siitä yhteiskunnalle koituvat kustannukset.;<br />
'Kaikki yllä';Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mitkään kaksi niistä eivät riitä.|<br />
name:v5b|description:Muu, mikä?|type:textbox|<br />
name:v6|description:'''6. Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.'''|type:checkbox|options:<br />
'Kipu tai ärsytys';Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla;<br />
'Korkea kuume';Korkea kuume;<br />
'Kouristukset';Kouristukset;<br />
'Hengityskatkos';Tilapäinen hengityskatkos;<br />
'Allerginen reaktio';Vakavat allergiset reaktiot;<br />
'Kollapsi';Kollapsi eli lihasten äkillinen veltostuminen;<br />
'Narkolepsia';Narkolepsia (pitkäaikainen haitta)|<br />
name:v7|description:'''7. Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Onko sinulla yleistä, johonkin kysymykseen liittyvää lisättävää, mitä et saanut vastauksissa esille, tai muita kommentteja?'''|type:textbox|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'|<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'<br />
"><br />
library(OpasnetUtils)<br />
<br />
kysymykset <- c(<br />
"Ikä",<br />
"Rokotevalinta A200 B500",<br />
"Rokotevalinta kommentteja",<br />
"Montako euroa on yksi QALY?",<br />
"Montako euroa QALY yli",<br />
"Montako euroa QALY alle",<br />
"Montako euroa QALY vähintään, ei kiinteää ylärajaa",<br />
"Yhteiskunnan varmistama laumasuoja",<br />
"Rokotevertailuperusteet",<br />
"Rokotevertailu muu",<br />
"Kestämättömät haittavaikutukset",<br />
"Uusia kohtia ja kysymyksiä"<br />
)<br />
<br />
v3a <- paste(v3a, collapse = "; ")<br />
v4 <- paste(v4, collapse = "; ") <br />
v5a <- paste(v5a, collapse = "; ")<br />
v6 <- paste(v6, collapse = "; ")<br />
<br />
# Vähän vaarallista että mikä tahansa virhe johtaa siihen että <br />
# data tulkitaan olemassa olemattomaksi, R tietokantafunktiot ovat <br />
# jäljessä kehitystä: .series ja .locations eivät toimi subseteille.<br />
obs <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
if (!is.null(obs)) {<br />
if ("Obs" %in% colnames(obs)) {<br />
at <- "replace"<br />
obs <- 1<br />
} else {<br />
at <- "append"<br />
obs <- obs$KyselyID<br />
obs <- gsub("[A-Za-z]", "", as.character(obs))<br />
obs <- max(as.numeric(obs)) + 1<br />
}<br />
} else {<br />
at <- "replace"<br />
obs <- 1<br />
}<br />
dat <- data.frame(<br />
KyselyID = obs, <br />
Aika = date(), <br />
Kysymys = kysymykset, <br />
Result = c(v1, v2a, v2b, v3a, v3b, v3c, v3d, v4, v5a, v5b, v6, v7)<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Kysely", <br />
act_type = at, <br />
language = "fin", <br />
who = wiki_username<br />
)<br />
<br />
oprint("Kiitos. Vastauksesi on onnistuneesti tallennettu.")<br />
</rcode><br />
<br />
<rcode label="Näytä vastaukset" embed=1 showcode=-1 graphics=1 variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
library(OpasnetUtilsExt)<br />
library(ggplot2)<br />
<br />
pagename <- gsub(" ", "_", pagename)<br />
dat <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- tryCatch(<br />
opbase.data(ident, subset = "Poistot"),<br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[dat$Kysymys == "Rokotevalinta A200 B500" , ]<br />
dat <- dat[!1:nrow(dat) %in% pois , ]<br />
<br />
ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + coord_flip()<br />
<br />
if(nrow(dat) == 0) {<br />
oprint("Kaikki kommentit on sisällytetty tekstiin.")<br />
} else {<br />
if (is.null(dat)) oprint("Vastauksia ei löytynyt") else {<br />
<br />
ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + theme_gray(base_size = 24) + coord_flip()<br />
<br />
oprint(dat, include.rownames = FALSE)<br />
}<br />
}<br />
<br />
</rcode><br />
<br />
<nowiki>*</nowiki>Menetetyiksi elinvuosiksi lasketaan jokainen ennenaikaisen kuoleman takia menetetty elinvuosi, sekä sairaana vietetty aika. Eri taudeilla on laskemista varten eri painokertoimia, väliltä 0 (=täysin terve) ja 1 (=kuollut). Esimerkiksi vakavan tartuntataudin [[:op_en:Disability weights|kerroin]] on WHO:n mukaan 0,210. Aika sairaana kerrotaan kertoimella, jonka jälkeen saatuja suhteellisia aijanjaksoja lasketaan yhteen vuoden mittaiseksi pätkäksi. Tämän vuoden ei tarvitse olla yhden ihmisen yhtenäinen elinvuosi, vaan voi koostua monen ihmisen päivästä kuukausiin (tai jopa vuosiin) mittaisista sairaana vietetyistä ajanjaksoista. Tarkempi kuvaus sivulla [[Tautitaakka]].<br />
<br />
--------------------<br />
<br><br />
KOMMENTTI: Rokotekyselyn Taulukko 2 vastaa käsittääkseni seuraavaa tilannetta<br />
<br />
kokonais lisä sairaus säästetyt <br />
kustannus kustannus(*) tapaukset sairaustap.<br />
EI ROKOTETA 120 0 60 0<br />
ROKOTE A 80 (=20+60) -40 40 20<br />
ROKOTE B 150(=80+70) 30 30 30<br />
<br />
(*) lisäkustannus verrattuna "ei rokoteta" tilanteeseen<br />
<br />
Nyt Hinta/(säästettävä sairaustapaus) on ymmärtääkseni laskettu käyttämällä<br />
hintana lukuja 80 ja 150 eli ottamatta huomioon tilanteen "ei rokoteta"<br />
kustannuksia vaikka säästetyt sairaustapaukset lasketaankin vähentyminä <br />
tilanteen "ei rokoteta" lukuihin verrattuna.<br />
<br />
Rokotteen hintana pitäisi kaiketi käyttää saraketta (*),<br />
joten rokotteella A rahaa säästyy pelkästään hoitokustannusten säästöinä<br />
ja yhden säästetyn sairaustapuksen "hintaa" tällöin vaikea määrittää.<br />
<br />
Esimerkin tilanteessa rokote A on aina kannattava (säästää rahaa) ja <br />
rokote B valitaan, jos 10 sairaustapauksen lisäsäästöstä A:han<br />
verrattuna ollaan valmiit maksamaan 70 kultarahaa eli 7 rahaa/tapaus.<br />
<br />
--[[Käyttäjä:Mnud|Markku N.]] ([[Keskustelu käyttäjästä:Mnud|keskustelu]]) 14. elokuuta 2014 kello 14.42 (UTC)<br />
<br />
------------<br />
<br><br />
<br />
'''Kysymyksen 2 taustamateriaali'''<br />
<br />
{| {{prettytable}}<br />
|+'''Rokottamisesta koituvat hyödyt ja kustannukset<br />
|-<br />
| || '''Hinta''' || '''Kustannus''' || '''Sairaustapaukset''' || '''Hinta/Säästettävä sairaustapaus''' || '''Sairastamisen hinta''' || '''Kokonaiskustannus'''<br />
|-<br />
| '''Rokote A''' ||align="center"| 20 ||align="center"| 60 ||align="center"| 40 ||align="center"| 4 ||align="center" rowspan="3"| 2 ||align="center"| 160<br />
|-<br />
| '''Rokote B''' || align="center"| 80 || align="center"| 70 || align="center"| 30 || align="center"| 5 || align="center"| 210<br />
|-<br />
| '''Ei rokoteta''' || align="center"| 0 || align="center"| 120 || align="center"| 60 || align="center"| - || align="center"| 240<br />
|}<br />
<br />
Yllä olevassa taulukossa näet esimerkin tilanteesta, jossa tehdään päätöstä kahden eri rokotteen ostamisen ja käyttämisen väliltä. Samat arvot ovat löydettävissä myös tämän selityksen alta kuvaajien muodossa.<br />
*Ensimmäinen sarake, eli '''hinta''', kertoo rokotteen hankkimiseen tarvittavan rahamäärän kultarahoina. Rokotteen A ostaminen kaikille maksaa siis 20 kultarahaa, ja rokotteen B ostaminen 80.<br />
*Toinen sarake, '''kustannus''', laskee yhteen muut rokotteen käytöstä tai käyttämättömyydestä tulevat kustannukset. Siihen kuuluvat rokottamisestai huolimatta tulevat sairaustapauksista aiheutuvat kustannukset sekä sairastamisesta aiheutuneet työpoissaoloista johtuvat kustannukset yksittäisille ihmisille.<br />
*'''Sairaustapaukset''' kertovat, montako ihmistä sairastuu rokotteen estämään tautiin rokotten saamisesta huolimatta, tai kokonaan ilman sitä.<br />
*'''Hinta/säästettävä sairaustapaus''' on rokotteen hinta+kustannus jaettuna sillä määrällä, kuinka monta sairastapausta rokotteen ottaminen estää, eli 60 (sairastapausten määrä ilman rokotetta) - sairaustapausten määrä rokotteen kanssa. Se kertoo, kuinka monta kultarahaa maksetaan siitä, että yksi ihminen ei sairastu tautiin.<br />
*'''Sairastamisen hinta''' kertoo siitä, kuinka iäväksi asiantuntijat arvioivat taudin sairastamisen. Tälle sairastammiselle henkisesti ja fyysisesti kärsimiselle on annettu rahallinen arvo, tässä tapauksessa 2 kultarahaa, joka on sairastamisen hinta. Näin voidaan rahallisesti arvioida, kuinka paljon kärsimistä syntyy, kun 60 ihmistä saa taudin.<br />
*'''Kokonaiskustannuksiin''' on laskettu yhteen hinta, kustannukset sekä sairastamisen hinta kerrottuna sairaustapausten määrällä.<br />
<br />
[[Kuva:rokotekysely.jpg]]<br />
<br />
Kysymyksen 2 taustatiedot löytyvät myös tarinan muodossa [[Keskustelu:Pneumokokkirokotekysely|keskustelusivulta]].<br />
<br />
<rcode embed=1 label="Poista kyselyn vastaus" showcode=-1 variables="<br />
name:jaeid|description:Poistettavan kommentin ID|type:text|<br />
name:syy|description:Poiston syy|type:selection|options:<br />
;- Valitse syy -;<br />
'Testivastaus';Testivastaus;<br />
'Tuplapostaus';Tuplapostaus;<br />
'Spam';Spam (käytä säästellen)|<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
<br />
jaeid <- gsub("\\s", "", unlist(strsplit(jaeid, ",")))<br />
dat <- data.frame(<br />
Versio = 1,<br />
Aika = date(), <br />
Käyttäjä = wiki_username,<br />
Syy = syy, <br />
Result = jaeid<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Poistot", <br />
act_type = "append", <br />
language = "fin",<br />
who = wiki_username<br />
)<br />
<br />
oprint("Vastaukset onnistuneesti poistettu.\n")<br />
<br />
pois <- opbase.data(ident, subset = "Kysely")<br />
<br />
oprint(pois[pois$KyselyID == jaeid , ], include.rownames = FALSE)<br />
<br />
</rcode><br />
<br />
== Kysymys ==<br />
<br />
Millainen pitäisi olla pneumokokkirokotekyselyn, jotta<br />
* sen avulla osallistuminen [[pneumokokkirokote|rokotehankintaprojektiin]] olisi helppoa,<br />
* siihen vastaaminen ei vaadi erityistä perehtyneisyyttä pneumokokkiin tai rokotteisiin,<br />
* siinä kartoitetaan erityisesti arvokysymyksiä (mm. jotta ei tarvita perehtyneisyyttä, ks. yllä),<br />
* siinä pyrkimyksenä on kartoittaa millaisia näkemyksiä on eikä niinkään niiden tarkkoja frekvenssejä väestössä?<br />
<br />
== Vastaus ==<br />
<br />
Katso yllä toteutettu kysely.<br />
<br />
== Katso myös ==<br />
<br />
{{pneumokokkirokote}}<br />
<br />
== Viitteet ==<br />
<br />
<references/><br />
<br />
* Tähän voisi kerätä viitteitä eri yhteyksissä ja eri maissa käytetyistä euroa per DALY -kustannustehokkuussuhteista.</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Pneumokokkirokotekysely&diff=25453Pneumokokkirokotekysely2014-08-15T12:51:33Z<p>Sharp: </p>
<hr />
<div>{|<br />
|[[kuva:thl_logo.png]] <br />
|'''Tämä on kaikille avoin kysely rokotteiden valintaperusteista erityisesti liittyen pneumokokkirokotteeseen. <br />
Kansallisen rokotusohjelman rokote on tulossa kilpailutukseen syksyllä 2014. Voit lukea lisää rokotushankinnasta ja siihen liittyvästä päätöksenteosta sivulta [[Pneumokokkirokotteen hankinta kansalliseen rokotusohjelmaan]]. Kysely ja sivusto on Terveyden ja hyvinvoinnin laitoksen ylläpitämä.<br />
|}<br />
<rcode embed=0 label="Vastaa kyselyyn" showcode=-1 variables="<br />
name:v1|description:'''1. Ikäsi'''|type:selection|options:'alle 20';alle 20;'21-30';21-30;'31-60';31-60;'yli 61';yli 61|<br />
name:v2a|description:'''2. Katso kyselyn alla olevaa taulukkoa kahden eri rokotteen hinnoista ja hyödyistä. Kumpi rokote mielestäsi pitäisi valita ja miksi?'''|type:selection|options:<br />
'Rokote A halvempi'; Rokote A, koska se on halvempi rokote.;<br />
'Rokote A kokonaiskustannukset'; Rokote A, koska sen kokonaiskustannukset ovat pienemmät.;<br />
'Rokote A kustannustehokkuus'; Rokote A, koska se maksaa vähemmän yhtä sairastumisen estoa kohti.;<br />
'Rokote B vaikuttavampi'; Rokote B, koska se vähentää sairastamista enemmän, rahasta ei väliä.;<br />
'Rokote B lisähinta kannattaa'; Rokote B, koska 5 kultarahaa ei ole liikaa yhden sairastumisen estämisestä 4:ään verrattuna.;<br />
'Muu on tärkeintä';Ei voi sanoa, koska jokin muu asia on tärkeintä. (Tarkenna alla olevaan laatikkoon)|<br />
name:v2b|description:Kommentteja tai tarkennuksia kysymykseen 2 liittyen|type:textbox|<br />
name:v3a|description:'''3. Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden elinvuoden* säästämiseen?'''|type:checkbox|options:<br />
'EVS, elintavat';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.;<br />
'EVS, ominaisuudet';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.|<br />
name:v3b|description:Terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen yli (euroa)|type:text|<br />
name:v3c|description:Mutta alle|type:text|<br />
name:v3d|description:Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat per elinvuosi halvempia kuin (euroa)|type:text|<br />
name:v4|description:'''4. Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?'''|type:checkbox|options:<br />
'Rokotukset kaikille';Tehdä rokotukset pakollisiksi kaikille.;<br />
'Rokotukset koululaisille';Vaaditaan voimassa olevat rokotukset esim. koululaisilta.;<br />
'Kannustus ja tieto';Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.;<br />
'Ilmaiset rokotukset';Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.;<br />
'Ei pidä puuttua';Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.|<br />
name:v5a|description:'''5. Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)'''|type:checkbox|options:<br />
'Kansanterveys';Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.;<br />
'Yksittäinen ihminen';Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.;<br />
'Laumasuoja';Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.;<br />
'Rahalliset kustannukset';Rokotteen hinta ja muut siitä yhteiskunnalle koituvat kustannukset.;<br />
'Kaikki yllä';Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mitkään kaksi niistä eivät riitä.|<br />
name:v5b|description:Muu, mikä?|type:textbox|<br />
name:v6|description:'''6. Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.'''|type:checkbox|options:<br />
'Kipu tai ärsytys';Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla;<br />
'Korkea kuume';Korkea kuume;<br />
'Kouristukset';Kouristukset;<br />
'Hengityskatkos';Tilapäinen hengityskatkos;<br />
'Allerginen reaktio';Vakavat allergiset reaktiot;<br />
'Kollapsi';Kollapsi eli lihasten äkillinen veltostuminen;<br />
'Narkolepsia';Narkolepsia (pitkäaikainen haitta)|<br />
name:v7|description:'''7. Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Onko sinulla yleistä, johonkin kysymykseen liittyvää lisättävää, mitä et saanut vastauksissa esille, tai muita kommentteja?'''|type:textbox|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'|<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'<br />
"><br />
library(OpasnetUtils)<br />
<br />
kysymykset <- c(<br />
"Ikä",<br />
"Rokotevalinta A200 B500",<br />
"Rokotevalinta kommentteja",<br />
"Montako euroa on yksi QALY?",<br />
"Montako euroa QALY yli",<br />
"Montako euroa QALY alle",<br />
"Montako euroa QALY vähintään, ei kiinteää ylärajaa",<br />
"Yhteiskunnan varmistama laumasuoja",<br />
"Rokotevertailuperusteet",<br />
"Rokotevertailu muu",<br />
"Kestämättömät haittavaikutukset",<br />
"Uusia kohtia ja kysymyksiä"<br />
)<br />
<br />
v3a <- paste(v3a, collapse = "; ")<br />
v4 <- paste(v4, collapse = "; ") <br />
v5a <- paste(v5a, collapse = "; ")<br />
v6 <- paste(v6, collapse = "; ")<br />
<br />
# Vähän vaarallista että mikä tahansa virhe johtaa siihen että <br />
# data tulkitaan olemassa olemattomaksi, R tietokantafunktiot ovat <br />
# jäljessä kehitystä: .series ja .locations eivät toimi subseteille.<br />
obs <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
if (!is.null(obs)) {<br />
if ("Obs" %in% colnames(obs)) {<br />
at <- "replace"<br />
obs <- 1<br />
} else {<br />
at <- "append"<br />
obs <- obs$KyselyID<br />
obs <- gsub("[A-Za-z]", "", as.character(obs))<br />
obs <- max(as.numeric(obs)) + 1<br />
}<br />
} else {<br />
at <- "replace"<br />
obs <- 1<br />
}<br />
dat <- data.frame(<br />
KyselyID = obs, <br />
Aika = date(), <br />
Kysymys = kysymykset, <br />
Result = c(v1, v2a, v2b, v3a, v3b, v3c, v3d, v4, v5a, v5b, v6, v7)<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Kysely", <br />
act_type = at, <br />
language = "fin", <br />
who = wiki_username<br />
)<br />
<br />
oprint("Kiitos. Vastauksesi on onnistuneesti tallennettu.")<br />
</rcode><br />
<br />
<rcode label="Näytä vastaukset" embed=1 showcode=-1 graphics=1 variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
library(OpasnetUtilsExt)<br />
library(ggplot2)<br />
<br />
pagename <- gsub(" ", "_", pagename)<br />
dat <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- tryCatch(<br />
opbase.data(ident, subset = "Poistot"),<br />
error = function(...) return(NULL)<br />
)<br />
<br />
pois <- as.numeric(pois$Result)<br />
dat <- dat[dat$Kysymys == "Rokotevalinta A200 B500" , ]<br />
dat <- dat[!1:nrow(dat) %in% pois , ]<br />
<br />
ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + coord_flip()<br />
<br />
if(nrow(dat) == 0) {<br />
oprint("Kaikki kommentit on sisällytetty tekstiin.")<br />
} else {<br />
if (is.null(dat)) oprint("Vastauksia ei löytynyt") else {<br />
<br />
ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + theme_gray(base_size = 24) + coord_flip()<br />
<br />
oprint(dat, include.rownames = FALSE)<br />
}<br />
}<br />
<br />
</rcode><br />
<br />
<nowiki>*</nowiki>Menetetyiksi elinvuosiksi lasketaan jokainen ennenaikaisen kuoleman takia menetetty elinvuosi, sekä sairaana vietetty aika. Eri taudeilla on laskemista varten eri painokertoimia, väliltä 0 (=täysin terve) ja 1 (=kuollut). Esimerkiksi vakavan tartuntataudin [[:op_en:Disability weights|kerroin]] on WHO:n mukaan 0,210. Aika sairaana kerrotaan kertoimella, jonka jälkeen saatuja suhteellisia aijanjaksoja lasketaan yhteen vuoden mittaiseksi pätkäksi. Tämän vuoden ei tarvitse olla yhden ihmisen yhtenäinen elinvuosi, vaan voi koostua monen ihmisen päivästä kuukausiin (tai jopa vuosiin) mittaisista sairaana vietetyistä ajanjaksoista. Tarkempi kuvaus sivulla [[Tautitaakka]].<br />
<br />
--------------------<br />
<br><br />
KOMMENTTI: Rokotekyselyn Taulukko 2 vastaa käsittääkseni seuraavaa tilannetta<br />
<br />
kokonais lisä sairaus säästetyt <br />
kustannus kustannus(*) tapaukset sairaustap.<br />
EI ROKOTETA 120 0 60 0<br />
ROKOTE A 80 (=20+60) -40 40 20<br />
ROKOTE B 150(=80+70) 30 30 30<br />
<br />
(*) lisäkustannus verrattuna "ei rokoteta" tilanteeseen<br />
<br />
Nyt Hinta/(säästettävä sairaustapaus) on ymmärtääkseni laskettu käyttämällä<br />
hintana lukuja 80 ja 150 eli ottamatta huomioon tilanteen "ei rokoteta"<br />
kustannuksia vaikka säästetyt sairaustapaukset lasketaankin vähentyminä <br />
tilanteen "ei rokoteta" lukuihin verrattuna.<br />
<br />
Rokotteen hintana pitäisi kaiketi käyttää saraketta (*),<br />
joten rokotteella A rahaa säästyy pelkästään hoitokustannusten säästöinä<br />
ja yhden säästetyn sairaustapuksen "hintaa" tällöin vaikea määrittää.<br />
<br />
Esimerkin tilanteessa rokote A on aina kannattava (säästää rahaa) ja <br />
rokote B valitaan, jos 10 sairaustapauksen lisäsäästöstä A:han<br />
verrattuna ollaan valmiit maksamaan 70 kultarahaa eli 7 rahaa/tapaus.<br />
<br />
--[[Käyttäjä:Mnud|Markku N.]] ([[Keskustelu käyttäjästä:Mnud|keskustelu]]) 14. elokuuta 2014 kello 14.42 (UTC)<br />
<br />
------------<br />
<br><br />
<br />
'''Kysymyksen 2 taustamateriaali'''<br />
<br />
{| {{prettytable}}<br />
|+'''Rokottamisesta koituvat hyödyt ja kustannukset<br />
|-<br />
| || '''Hinta''' || '''Kustannus''' || '''Sairaustapaukset''' || '''Hinta/Säästettävä sairaustapaus''' || '''Sairastamisen hinta''' || '''Kokonaiskustannus'''<br />
|-<br />
| '''Rokote A''' ||align="center"| 20 ||align="center"| 60 ||align="center"| 40 ||align="center"| 4 ||align="center" rowspan="3"| 2 ||align="center"| 160<br />
|-<br />
| '''Rokote B''' || align="center"| 80 || align="center"| 70 || align="center"| 30 || align="center"| 5 || align="center"| 210<br />
|-<br />
| '''Ei rokoteta''' || align="center"| 0 || align="center"| 120 || align="center"| 60 || align="center"| - || align="center"| 240<br />
|}<br />
<br />
Yllä olevassa taulukossa näet esimerkin tilanteesta, jossa tehdään päätöstä kahden eri rokotteen ostamisen ja käyttämisen väliltä. Samat arvot ovat löydettävissä myös tämän selityksen alta kuvaajien muodossa.<br />
*Ensimmäinen sarake, eli '''hinta''', kertoo rokotteen hankkimiseen tarvittavan rahamäärän kultarahoina. Rokotteen A ostaminen kaikille maksaa siis 20 kultarahaa, ja rokotteen B ostaminen 80.<br />
*Toinen sarake, '''kustannus''', laskee yhteen muut rokotteen käytöstä tai käyttämättömyydestä tulevat kustannukset. Siihen kuuluvat rokottamisestai huolimatta tulevat sairaustapauksista aiheutuvat kustannukset sekä sairastamisesta aiheutuneet työpoissaoloista johtuvat kustannukset yksittäisille ihmisille.<br />
*'''Sairaustapaukset''' kertovat, montako ihmistä sairastuu rokotteen estämään tautiin rokotten saamisesta huolimatta, tai kokonaan ilman sitä.<br />
*'''Hinta/säästettävä sairaustapaus''' on rokotteen hinta+kustannus jaettuna sillä määrällä, kuinka monta sairastapausta rokotteen ottaminen estää, eli 60 (sairastapausten määrä ilman rokotetta) - sairaustapausten määrä rokotteen kanssa. Se kertoo, kuinka monta kultarahaa maksetaan siitä, että yksi ihminen ei sairastu tautiin.<br />
*'''Sairastamisen hinta''' kertoo siitä, kuinka iäväksi asiantuntijat arvioivat taudin sairastamisen. Tälle sairastammiselle henkisesti ja fyysisesti kärsimiselle on annettu rahallinen arvo, tässä tapauksessa 2 kultarahaa, joka on sairastamisen hinta. Näin voidaan rahallisesti arvioida, kuinka paljon kärsimistä syntyy, kun 60 ihmistä saa taudin.<br />
*'''Kokonaiskustannuksiin''' on laskettu yhteen hinta, kustannukset sekä sairastamisen hinta kerrottuna sairaustapausten määrällä.<br />
<br />
[[Kuva:rokotekysely.jpg]]<br />
<br />
Kysymyksen 2 taustatiedot löytyvät myös tarinan muodossa [[Keskustelu:Pneumokokkirokotekysely|keskustelusivulta]].<br />
<br />
<rcode embed=1 label="Poista kyselyn vastaus" showcode=-1 variables="<br />
name:jaeid|description:Poistettavan kommentin ID|type:text|<br />
name:syy|description:Poiston syy|type:selection|options:<br />
;- Valitse syy -;<br />
'Testivastaus';Testivastaus;<br />
'Tuplapostaus';Tuplapostaus;<br />
'Spam';Spam (käytä säästellen)|<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
<br />
dat <- data.frame(<br />
Versio = 1,<br />
Aika = date(), <br />
Käyttäjä = wiki_username,<br />
Syy = syy, <br />
Result = jaeid<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Poistot", <br />
act_type = "append", <br />
language = "fin",<br />
who = wiki_username<br />
)<br />
<br />
oprint("Vastaukset onnistuneesti poistettu.\n")<br />
<br />
pois <- opbase.data(ident, subset = "Kysely")<br />
<br />
oprint(pois[pois$KyselyID == jaeid , ], include.rownames = FALSE)<br />
<br />
</rcode><br />
<br />
== Kysymys ==<br />
<br />
Millainen pitäisi olla pneumokokkirokotekyselyn, jotta<br />
* sen avulla osallistuminen [[pneumokokkirokote|rokotehankintaprojektiin]] olisi helppoa,<br />
* siihen vastaaminen ei vaadi erityistä perehtyneisyyttä pneumokokkiin tai rokotteisiin,<br />
* siinä kartoitetaan erityisesti arvokysymyksiä (mm. jotta ei tarvita perehtyneisyyttä, ks. yllä),<br />
* siinä pyrkimyksenä on kartoittaa millaisia näkemyksiä on eikä niinkään niiden tarkkoja frekvenssejä väestössä?<br />
<br />
== Vastaus ==<br />
<br />
Katso yllä toteutettu kysely.<br />
<br />
== Katso myös ==<br />
<br />
{{pneumokokkirokote}}<br />
<br />
== Viitteet ==<br />
<br />
<references/><br />
<br />
* Tähän voisi kerätä viitteitä eri yhteyksissä ja eri maissa käytetyistä euroa per DALY -kustannustehokkuussuhteista.</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Hiekkalaatikko2&diff=25381Hiekkalaatikko22014-08-13T09:13:09Z<p>Sharp: </p>
<hr />
<div><rcode live=1 showcode=-1 embed=1 graphics=1><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
dat <- opbase.data("Op_fi4524", subset = 'Kysely')<br />
dat <- dat[dat$Kysymys == "Rokotevalinta A200 B500", ]<br />
#ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + coord_flip()<br />
dat <- as.vector(table(factor(dat$Result)))<br />
#oprint(dat)<br />
<br />
#hist(dat, labels=c("A","B","C","D"))<br />
barplot(dat)<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Hiekkalaatikko2&diff=25380Hiekkalaatikko22014-08-13T09:10:51Z<p>Sharp: </p>
<hr />
<div><rcode live=1 showcode=-1 embed=1><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
dat <- opbase.data("Op_fi4524", subset = 'Kysely')<br />
#dat <- dat[dat$Kysymys == "Rokotevalinta A200 B500", ]<br />
ggplot(dat[dat$Kysymys == "Rokotevalinta A200 B500" , ], aes(x = Result)) + geom_bar() + coord_flip()<br />
#dat <- as.vector(table(factor(dat$Result)))<br />
#oprint(dat)<br />
<br />
#hist(dat, labels=c("A","B","C","D"))<br />
#barplot(dat)<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=25157Kohdistamo2014-08-04T09:45:11Z<p>Sharp: </p>
<hr />
<div>[[op_en:Timetracker]]<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'H2O';H2O;<br />
'IEHIAS';IEHIAS;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="output" embed=1 showcode=0 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'H2O';H2O;<br />
'IEHIAS';IEHIAS;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä, projekti){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
<br />
# pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
# Varoitus tulee arvosta k1 mutta tällä ei ole käytännön merkitystä. Varoitus ei ole virhe eikä toiminta keskeydy.<br />
#<br />
# pois <- subset(pois, pois > 0)<br />
# dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# # ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
#<br />
# dat on data.frame ja siksi et voi käyttää sitä vertailussa vektoriin. Sen sijaan 1:nrow(dat) tuottaa juoksevan rivinumeroinnin dat:lle. <br />
# Kirjausnro puolestaan pitää muuttaa numeroiksi, jotta sitä voi verrata rivinumeroihin. Suositeltavampi tyyli on tämä:<br />
<br />
pois <- as.numeric(levels(poistot$Kirjausnro)[poistot$Kirjausnro])<br />
dat <- dat[!1:nrow(dat) %in% pois , colnames(dat) != "Result"]<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
if (tekijä != "Kaikki") tekijä <- gsub("\\s", "", unlist(strsplit(tekijä, ","))) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
kirjausajat(alku, loppu, tekijä, projekti)<br />
<br />
<br />
#objects.store(output, kirjausajat)<br />
# Periaatteena on kaksi koodia: initiate luo funktiot, ovariablet ja muut yleiskäyttöiset oliot ja tallentaa ne serverille.<br />
# Käyttökoodi answer kutsuu noita olioita ja suorittaa niillä tapauskohtaisia toimenpiteitä. Koska tämä on tapauskohtainen<br />
# koodi, ei kannata tallentaa olioita (ethän kutsu niitä missään). Kunhan koodi on vakiintunut, kannattaa se jakaa<br />
# yleiseen ja projektikohtaiseen. Esimerkiksi tekijöiden tunnukset kannattaa ottaa funktioon parametriksi, jotta funktio<br />
# olisi yleispätevä, ja parametrin arvo kerrotaan projektikohtaisessa koodissa.<br />
</rcode><br />
<br />
<br />
<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
nro <- gsub("\\s", "", unlist(strsplit(nro, ","))) # Pilkotaan pilkusta ja poistetaan alku- ja loppuvälilyönnit<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", <br />
act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Nämä kirjaukset poistettu onnistuneesti.\n")<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}<br />
<br />
== Aikakoneen laskenta ==<br />
<br />
Tässä on siistitty ja dokumentoitu versio [[Aikakone]]en makeTimeline-funktiosta, joka ottaa sisäänsä työajan alku- ja loppuaikoja ja tuottaa aikajanan. Funktion olennainen lisäarvo on siinä, että sille voi antaa päällekkäisiä ajanjaksoja, ja se korvaa vanhemmat kirjaukset (eli ylempänä taulukossa olevat) uudemmilla, jos niiissä on päällekkäisyyksiä. Toinen lisäarvo on se, että se automaattisesti käsittelee jokaisen henkilön ajankäyttöä erikseen, mutta muiden indeksien suhteen se vain periyttää tiedot aikajanalle. Muita indeksejä voi siis käyttää tarpeen mukaan.<br />
<br />
{{comment|# |Kehityskohteita: tarvitaanko koskaan tilannetta, jossa henkilösarakkeita onkin useita? Ei liene tärkeä, vaan tarvittaessa tämä toteutetaan luomalla tämmöinen sarake etukäteen.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 15. heinäkuuta 2014 kello 08.28 (UTC)}}<br />
<br />
<rcode embed=1><br />
library(OpasnetUtils)<br />
<br />
makeTimeline2 <- function (<br />
events, # data.frame with time cols (start and end) and possibly other indices. One index may separate individuals.<br />
cols = c("Alku", "Loppu"), # Names of the start and end time columns<br />
personcol = NULL # Name of the column defining individuals, if any<br />
) {<br />
<br />
if (!is.numeric(events[cols[1]])) { # If not numeric, assume a time format.<br />
for (m in 1:2) {<br />
events[[cols[m]]] <- as.POSIXct(events[[cols[m]]], tz = "Europe/Helsinki")<br />
}<br />
}<br />
if(is.null(personcol)) { # Make a temporary column for individuals<br />
personcol <- "Persontemp"<br />
events$Persontemp <- "Temp"<br />
}<br />
<br />
out <- data.frame()<br />
<br />
for(k in as.character((unique(events[[personcol]])))) { # Look at each individual's events separately.<br />
<br />
event <- events[events[[personcol]] == k , colnames(events) != personcol]<br />
<br />
# timeline is a data.frame with all starts and ends as one timeline. <br />
# Events down in the "event" data.frame replace previous events higher in "event", if they overlap.<br />
timeline <- data.frame(Time = min(event[[cols[1]]]), Eventrow = nrow(event) + 1) # First time point<br />
<br />
for (i in 1:nrow(event)) { # Go through each row and replace the time slot in timeline with the event.<br />
<br />
temp <- data.frame(<br />
Time = event[i , cols[1]],<br />
End = event[i , cols[2]],<br />
EventrowStart = i # Eventrows are used temporarily. In the end they are replaced with all indices in event.<br />
)<br />
<br />
# Add new time points to the timeline with the event row mentioned.<br />
timeline <- merge(timeline, temp[c("Time", "EventrowStart")], all = TRUE)<br />
colnames(temp) <- c("Remove", "Time", "EventrowEnd")<br />
timeline <- merge(timeline, temp[, c("Time", "EventrowEnd")], all = TRUE)<br />
<br />
# Go through intermediate time points and replace them with the new event.<br />
for (j in 2:nrow(timeline)) {<br />
if (is.na(timeline$Eventrow[j])) {<br />
timeline$Eventrow[j] <- timeline$Eventrow[j - 1]<br />
}<br />
if (is.na(timeline$EventrowStart[j]) & is.na(timeline$EventrowEnd[j])) {<br />
timeline$EventrowStart[j] <- timeline$EventrowStart[j - 1]<br />
}<br />
}<br />
# If the Eventrow is not a start, it must be an end.<br />
timeline$Eventrow <- ifelse(!is.na(timeline$EventrowStart), timeline$EventrowStart, timeline$Eventrow)<br />
timeline <- timeline[, c("Time", "Eventrow")]<br />
}<br />
<br />
# Add one row for the last timepoint.<br />
event <- rbind(event, rep(NA, ncol(event)))<br />
event[nrow(event) , cols[1]] <- max(timeline$Time)<br />
event$Eventrow <- row(event)[ , 1]<br />
<br />
# Bring back the other indices from event.<br />
timeline <- merge(timeline, event)<br />
timeline <- timeline[order(timeline$Time), ]<br />
timeline <- timeline[!colnames(timeline) %in% c("Eventrow", cols)]<br />
<br />
if(personcol != "Persontemp") timeline[[personcol]] <- k<br />
<br />
out <- rbind(out, timeline)<br />
<br />
}<br />
# Calculate the durations of each time slot in the timeline.<br />
out$Duration <- out$Time[c(2:nrow(out), NA)] - out$Time<br />
# Remove the last duration value from each individual's timeline.<br />
temp <- out[[personcol]]<br />
out$Duration <- ifelse(temp[c(2:length(temp), NA)] != temp | 1:length(temp) == length(temp), 0, out$Duration)<br />
<br />
return(out)<br />
}<br />
<br />
events <- data.frame(<br />
Projekti = c("LVM", "LVM", "Pneumokokki"),<br />
Alku = c("2014-07-14 12:00", "2014-07-15 13:00", "2014-07-14 12:30"), <br />
Loppu = c("2014-07-14 14:00", "2014-07-15 14:15", "2014-07-15 14:00"),<br />
Person = c("Heikki", "Ville", "Ville")<br />
)<br />
<br />
dat <- makeTimeline2(events, cols = c("Alku", "Loppu"), personcol = "Person")<br />
<br />
cat("Lähtödata\n")<br />
<br />
oprint(events)<br />
<br />
cat("Aikajana. Tapahtumien kestot ovat minuutteina.\n")<br />
<br />
dat$Time <- format(dat$Time) # Convert times from POSIXct to character.<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
== Korjauskoodi ==<br />
{{tuloslinkki}}<br />
<br />
<rcode label="Korjaa kirjaukset" variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
temp <- opbase.data("op_fi3948.kirjaukset", "12911")<br />
<br />
derp <- 12993<br />
<br />
#durp <- list()<br />
for (i in derp) {<br />
durp <- opbase.data("op_fi3948.kirjaukset", as.character(i))<br />
temp <- rbind(temp, durp)<br />
}<br />
<br />
opbase.upload(<br />
temp, <br />
who = wiki_username,<br />
name = pagename,<br />
subset = "Kirjaukset"<br />
)<br />
</rcode><br />
<br />
<rcode label="Korjaa poistot" variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
temp <- opbase.data("op_fi3948.kirjauspoistot", "12760")<br />
<br />
derp <- opbase.data("op_fi3948.kirjauspoistot", "12864")<br />
<br />
temp <- rbind(temp, derp)<br />
<br />
<br />
opbase.upload(<br />
temp, <br />
who = wiki_username,<br />
name = pagename,<br />
subset = "Kirjauspoistot"<br />
)<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=25131Kohdistamo2014-07-29T11:45:59Z<p>Sharp: </p>
<hr />
<div>[[op_en:Timetracker]]<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'H2O';H2O;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="output" embed=1 showcode=0 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'H2O';H2O;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä, projekti){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
<br />
# pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
# Varoitus tulee arvosta k1 mutta tällä ei ole käytännön merkitystä. Varoitus ei ole virhe eikä toiminta keskeydy.<br />
#<br />
# pois <- subset(pois, pois > 0)<br />
# dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# # ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
#<br />
# dat on data.frame ja siksi et voi käyttää sitä vertailussa vektoriin. Sen sijaan 1:nrow(dat) tuottaa juoksevan rivinumeroinnin dat:lle. <br />
# Kirjausnro puolestaan pitää muuttaa numeroiksi, jotta sitä voi verrata rivinumeroihin. Suositeltavampi tyyli on tämä:<br />
<br />
pois <- as.numeric(levels(poistot$Kirjausnro)[poistot$Kirjausnro])<br />
dat <- dat[!1:nrow(dat) %in% pois , colnames(dat) != "Result"]<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
if (tekijä != "Kaikki") tekijä <- gsub("\\s", "", unlist(strsplit(tekijä, ","))) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
kirjausajat(alku, loppu, tekijä, projekti)<br />
<br />
<br />
#objects.store(output, kirjausajat)<br />
# Periaatteena on kaksi koodia: initiate luo funktiot, ovariablet ja muut yleiskäyttöiset oliot ja tallentaa ne serverille.<br />
# Käyttökoodi answer kutsuu noita olioita ja suorittaa niillä tapauskohtaisia toimenpiteitä. Koska tämä on tapauskohtainen<br />
# koodi, ei kannata tallentaa olioita (ethän kutsu niitä missään). Kunhan koodi on vakiintunut, kannattaa se jakaa<br />
# yleiseen ja projektikohtaiseen. Esimerkiksi tekijöiden tunnukset kannattaa ottaa funktioon parametriksi, jotta funktio<br />
# olisi yleispätevä, ja parametrin arvo kerrotaan projektikohtaisessa koodissa.<br />
</rcode><br />
<br />
<br />
<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
nro <- gsub("\\s", "", unlist(strsplit(nro, ","))) # Pilkotaan pilkusta ja poistetaan alku- ja loppuvälilyönnit<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", <br />
act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Nämä kirjaukset poistettu onnistuneesti.\n")<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}<br />
<br />
== Aikakoneen laskenta ==<br />
<br />
Tässä on siistitty ja dokumentoitu versio [[Aikakone]]en makeTimeline-funktiosta, joka ottaa sisäänsä työajan alku- ja loppuaikoja ja tuottaa aikajanan. Funktion olennainen lisäarvo on siinä, että sille voi antaa päällekkäisiä ajanjaksoja, ja se korvaa vanhemmat kirjaukset (eli ylempänä taulukossa olevat) uudemmilla, jos niiissä on päällekkäisyyksiä. Toinen lisäarvo on se, että se automaattisesti käsittelee jokaisen henkilön ajankäyttöä erikseen, mutta muiden indeksien suhteen se vain periyttää tiedot aikajanalle. Muita indeksejä voi siis käyttää tarpeen mukaan.<br />
<br />
{{comment|# |Kehityskohteita: tarvitaanko koskaan tilannetta, jossa henkilösarakkeita onkin useita? Ei liene tärkeä, vaan tarvittaessa tämä toteutetaan luomalla tämmöinen sarake etukäteen.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 15. heinäkuuta 2014 kello 08.28 (UTC)}}<br />
<br />
<rcode embed=1><br />
library(OpasnetUtils)<br />
<br />
makeTimeline2 <- function (<br />
events, # data.frame with time cols (start and end) and possibly other indices. One index may separate individuals.<br />
cols = c("Alku", "Loppu"), # Names of the start and end time columns<br />
personcol = NULL # Name of the column defining individuals, if any<br />
) {<br />
<br />
if (!is.numeric(events[cols[1]])) { # If not numeric, assume a time format.<br />
for (m in 1:2) {<br />
events[[cols[m]]] <- as.POSIXct(events[[cols[m]]], tz = "Europe/Helsinki")<br />
}<br />
}<br />
if(is.null(personcol)) { # Make a temporary column for individuals<br />
personcol <- "Persontemp"<br />
events$Persontemp <- "Temp"<br />
}<br />
<br />
out <- data.frame()<br />
<br />
for(k in as.character((unique(events[[personcol]])))) { # Look at each individual's events separately.<br />
<br />
event <- events[events[[personcol]] == k , colnames(events) != personcol]<br />
<br />
# timeline is a data.frame with all starts and ends as one timeline. <br />
# Events down in the "event" data.frame replace previous events higher in "event", if they overlap.<br />
timeline <- data.frame(Time = min(event[[cols[1]]]), Eventrow = nrow(event) + 1) # First time point<br />
<br />
for (i in 1:nrow(event)) { # Go through each row and replace the time slot in timeline with the event.<br />
<br />
temp <- data.frame(<br />
Time = event[i , cols[1]],<br />
End = event[i , cols[2]],<br />
EventrowStart = i # Eventrows are used temporarily. In the end they are replaced with all indices in event.<br />
)<br />
<br />
# Add new time points to the timeline with the event row mentioned.<br />
timeline <- merge(timeline, temp[c("Time", "EventrowStart")], all = TRUE)<br />
colnames(temp) <- c("Remove", "Time", "EventrowEnd")<br />
timeline <- merge(timeline, temp[, c("Time", "EventrowEnd")], all = TRUE)<br />
<br />
# Go through intermediate time points and replace them with the new event.<br />
for (j in 2:nrow(timeline)) {<br />
if (is.na(timeline$Eventrow[j])) {<br />
timeline$Eventrow[j] <- timeline$Eventrow[j - 1]<br />
}<br />
if (is.na(timeline$EventrowStart[j]) & is.na(timeline$EventrowEnd[j])) {<br />
timeline$EventrowStart[j] <- timeline$EventrowStart[j - 1]<br />
}<br />
}<br />
# If the Eventrow is not a start, it must be an end.<br />
timeline$Eventrow <- ifelse(!is.na(timeline$EventrowStart), timeline$EventrowStart, timeline$Eventrow)<br />
timeline <- timeline[, c("Time", "Eventrow")]<br />
}<br />
<br />
# Add one row for the last timepoint.<br />
event <- rbind(event, rep(NA, ncol(event)))<br />
event[nrow(event) , cols[1]] <- max(timeline$Time)<br />
event$Eventrow <- row(event)[ , 1]<br />
<br />
# Bring back the other indices from event.<br />
timeline <- merge(timeline, event)<br />
timeline <- timeline[order(timeline$Time), ]<br />
timeline <- timeline[!colnames(timeline) %in% c("Eventrow", cols)]<br />
<br />
if(personcol != "Persontemp") timeline[[personcol]] <- k<br />
<br />
out <- rbind(out, timeline)<br />
<br />
}<br />
# Calculate the durations of each time slot in the timeline.<br />
out$Duration <- out$Time[c(2:nrow(out), NA)] - out$Time<br />
# Remove the last duration value from each individual's timeline.<br />
temp <- out[[personcol]]<br />
out$Duration <- ifelse(temp[c(2:length(temp), NA)] != temp | 1:length(temp) == length(temp), 0, out$Duration)<br />
<br />
return(out)<br />
}<br />
<br />
events <- data.frame(<br />
Projekti = c("LVM", "LVM", "Pneumokokki"),<br />
Alku = c("2014-07-14 12:00", "2014-07-15 13:00", "2014-07-14 12:30"), <br />
Loppu = c("2014-07-14 14:00", "2014-07-15 14:15", "2014-07-15 14:00"),<br />
Person = c("Heikki", "Ville", "Ville")<br />
)<br />
<br />
dat <- makeTimeline2(events, cols = c("Alku", "Loppu"), personcol = "Person")<br />
<br />
cat("Lähtödata\n")<br />
<br />
oprint(events)<br />
<br />
cat("Aikajana. Tapahtumien kestot ovat minuutteina.\n")<br />
<br />
dat$Time <- format(dat$Time) # Convert times from POSIXct to character.<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
== Korjauskoodi ==<br />
{{tuloslinkki}}<br />
<br />
<rcode label="Korjaa kirjaukset" variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
temp <- opbase.data("op_fi3948.kirjaukset", "12416")<br />
<br />
derp <- 12865:12887<br />
<br />
#durp <- list()<br />
for (i in derp) {<br />
durp <- opbase.data("op_fi3948.kirjaukset", as.character(i))<br />
temp <- rbind(temp, durp)<br />
}<br />
<br />
opbase.upload(<br />
temp, <br />
who = wiki_username,<br />
name = pagename,<br />
subset = "Kirjaukset"<br />
)<br />
</rcode><br />
<br />
<rcode label="Korjaa poistot" variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
temp <- opbase.data("op_fi3948.kirjauspoistot", "12760")<br />
<br />
derp <- opbase.data("op_fi3948.kirjauspoistot", "12864")<br />
<br />
temp <- rbind(temp, derp)<br />
<br />
<br />
opbase.upload(<br />
temp, <br />
who = wiki_username,<br />
name = pagename,<br />
subset = "Kirjauspoistot"<br />
)<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=25130Kohdistamo2014-07-29T11:45:22Z<p>Sharp: </p>
<hr />
<div>[[op_en:Timetracker]]<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="output" embed=1 showcode=0 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'H2O';H2O;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä, projekti){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
<br />
# pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
# Varoitus tulee arvosta k1 mutta tällä ei ole käytännön merkitystä. Varoitus ei ole virhe eikä toiminta keskeydy.<br />
#<br />
# pois <- subset(pois, pois > 0)<br />
# dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# # ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
#<br />
# dat on data.frame ja siksi et voi käyttää sitä vertailussa vektoriin. Sen sijaan 1:nrow(dat) tuottaa juoksevan rivinumeroinnin dat:lle. <br />
# Kirjausnro puolestaan pitää muuttaa numeroiksi, jotta sitä voi verrata rivinumeroihin. Suositeltavampi tyyli on tämä:<br />
<br />
pois <- as.numeric(levels(poistot$Kirjausnro)[poistot$Kirjausnro])<br />
dat <- dat[!1:nrow(dat) %in% pois , colnames(dat) != "Result"]<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
if (tekijä != "Kaikki") tekijä <- gsub("\\s", "", unlist(strsplit(tekijä, ","))) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
kirjausajat(alku, loppu, tekijä, projekti)<br />
<br />
<br />
#objects.store(output, kirjausajat)<br />
# Periaatteena on kaksi koodia: initiate luo funktiot, ovariablet ja muut yleiskäyttöiset oliot ja tallentaa ne serverille.<br />
# Käyttökoodi answer kutsuu noita olioita ja suorittaa niillä tapauskohtaisia toimenpiteitä. Koska tämä on tapauskohtainen<br />
# koodi, ei kannata tallentaa olioita (ethän kutsu niitä missään). Kunhan koodi on vakiintunut, kannattaa se jakaa<br />
# yleiseen ja projektikohtaiseen. Esimerkiksi tekijöiden tunnukset kannattaa ottaa funktioon parametriksi, jotta funktio<br />
# olisi yleispätevä, ja parametrin arvo kerrotaan projektikohtaisessa koodissa.<br />
</rcode><br />
<br />
<br />
<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
nro <- gsub("\\s", "", unlist(strsplit(nro, ","))) # Pilkotaan pilkusta ja poistetaan alku- ja loppuvälilyönnit<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", <br />
act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Nämä kirjaukset poistettu onnistuneesti.\n")<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}<br />
<br />
== Aikakoneen laskenta ==<br />
<br />
Tässä on siistitty ja dokumentoitu versio [[Aikakone]]en makeTimeline-funktiosta, joka ottaa sisäänsä työajan alku- ja loppuaikoja ja tuottaa aikajanan. Funktion olennainen lisäarvo on siinä, että sille voi antaa päällekkäisiä ajanjaksoja, ja se korvaa vanhemmat kirjaukset (eli ylempänä taulukossa olevat) uudemmilla, jos niiissä on päällekkäisyyksiä. Toinen lisäarvo on se, että se automaattisesti käsittelee jokaisen henkilön ajankäyttöä erikseen, mutta muiden indeksien suhteen se vain periyttää tiedot aikajanalle. Muita indeksejä voi siis käyttää tarpeen mukaan.<br />
<br />
{{comment|# |Kehityskohteita: tarvitaanko koskaan tilannetta, jossa henkilösarakkeita onkin useita? Ei liene tärkeä, vaan tarvittaessa tämä toteutetaan luomalla tämmöinen sarake etukäteen.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 15. heinäkuuta 2014 kello 08.28 (UTC)}}<br />
<br />
<rcode embed=1><br />
library(OpasnetUtils)<br />
<br />
makeTimeline2 <- function (<br />
events, # data.frame with time cols (start and end) and possibly other indices. One index may separate individuals.<br />
cols = c("Alku", "Loppu"), # Names of the start and end time columns<br />
personcol = NULL # Name of the column defining individuals, if any<br />
) {<br />
<br />
if (!is.numeric(events[cols[1]])) { # If not numeric, assume a time format.<br />
for (m in 1:2) {<br />
events[[cols[m]]] <- as.POSIXct(events[[cols[m]]], tz = "Europe/Helsinki")<br />
}<br />
}<br />
if(is.null(personcol)) { # Make a temporary column for individuals<br />
personcol <- "Persontemp"<br />
events$Persontemp <- "Temp"<br />
}<br />
<br />
out <- data.frame()<br />
<br />
for(k in as.character((unique(events[[personcol]])))) { # Look at each individual's events separately.<br />
<br />
event <- events[events[[personcol]] == k , colnames(events) != personcol]<br />
<br />
# timeline is a data.frame with all starts and ends as one timeline. <br />
# Events down in the "event" data.frame replace previous events higher in "event", if they overlap.<br />
timeline <- data.frame(Time = min(event[[cols[1]]]), Eventrow = nrow(event) + 1) # First time point<br />
<br />
for (i in 1:nrow(event)) { # Go through each row and replace the time slot in timeline with the event.<br />
<br />
temp <- data.frame(<br />
Time = event[i , cols[1]],<br />
End = event[i , cols[2]],<br />
EventrowStart = i # Eventrows are used temporarily. In the end they are replaced with all indices in event.<br />
)<br />
<br />
# Add new time points to the timeline with the event row mentioned.<br />
timeline <- merge(timeline, temp[c("Time", "EventrowStart")], all = TRUE)<br />
colnames(temp) <- c("Remove", "Time", "EventrowEnd")<br />
timeline <- merge(timeline, temp[, c("Time", "EventrowEnd")], all = TRUE)<br />
<br />
# Go through intermediate time points and replace them with the new event.<br />
for (j in 2:nrow(timeline)) {<br />
if (is.na(timeline$Eventrow[j])) {<br />
timeline$Eventrow[j] <- timeline$Eventrow[j - 1]<br />
}<br />
if (is.na(timeline$EventrowStart[j]) & is.na(timeline$EventrowEnd[j])) {<br />
timeline$EventrowStart[j] <- timeline$EventrowStart[j - 1]<br />
}<br />
}<br />
# If the Eventrow is not a start, it must be an end.<br />
timeline$Eventrow <- ifelse(!is.na(timeline$EventrowStart), timeline$EventrowStart, timeline$Eventrow)<br />
timeline <- timeline[, c("Time", "Eventrow")]<br />
}<br />
<br />
# Add one row for the last timepoint.<br />
event <- rbind(event, rep(NA, ncol(event)))<br />
event[nrow(event) , cols[1]] <- max(timeline$Time)<br />
event$Eventrow <- row(event)[ , 1]<br />
<br />
# Bring back the other indices from event.<br />
timeline <- merge(timeline, event)<br />
timeline <- timeline[order(timeline$Time), ]<br />
timeline <- timeline[!colnames(timeline) %in% c("Eventrow", cols)]<br />
<br />
if(personcol != "Persontemp") timeline[[personcol]] <- k<br />
<br />
out <- rbind(out, timeline)<br />
<br />
}<br />
# Calculate the durations of each time slot in the timeline.<br />
out$Duration <- out$Time[c(2:nrow(out), NA)] - out$Time<br />
# Remove the last duration value from each individual's timeline.<br />
temp <- out[[personcol]]<br />
out$Duration <- ifelse(temp[c(2:length(temp), NA)] != temp | 1:length(temp) == length(temp), 0, out$Duration)<br />
<br />
return(out)<br />
}<br />
<br />
events <- data.frame(<br />
Projekti = c("LVM", "LVM", "Pneumokokki"),<br />
Alku = c("2014-07-14 12:00", "2014-07-15 13:00", "2014-07-14 12:30"), <br />
Loppu = c("2014-07-14 14:00", "2014-07-15 14:15", "2014-07-15 14:00"),<br />
Person = c("Heikki", "Ville", "Ville")<br />
)<br />
<br />
dat <- makeTimeline2(events, cols = c("Alku", "Loppu"), personcol = "Person")<br />
<br />
cat("Lähtödata\n")<br />
<br />
oprint(events)<br />
<br />
cat("Aikajana. Tapahtumien kestot ovat minuutteina.\n")<br />
<br />
dat$Time <- format(dat$Time) # Convert times from POSIXct to character.<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
== Korjauskoodi ==<br />
{{tuloslinkki}}<br />
<br />
<rcode label="Korjaa kirjaukset" variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
temp <- opbase.data("op_fi3948.kirjaukset", "12416")<br />
<br />
derp <- 12865:12887<br />
<br />
#durp <- list()<br />
for (i in derp) {<br />
durp <- opbase.data("op_fi3948.kirjaukset", as.character(i))<br />
temp <- rbind(temp, durp)<br />
}<br />
<br />
opbase.upload(<br />
temp, <br />
who = wiki_username,<br />
name = pagename,<br />
subset = "Kirjaukset"<br />
)<br />
</rcode><br />
<br />
<rcode label="Korjaa poistot" variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
temp <- opbase.data("op_fi3948.kirjauspoistot", "12760")<br />
<br />
derp <- opbase.data("op_fi3948.kirjauspoistot", "12864")<br />
<br />
temp <- rbind(temp, derp)<br />
<br />
<br />
opbase.upload(<br />
temp, <br />
who = wiki_username,<br />
name = pagename,<br />
subset = "Kirjauspoistot"<br />
)<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Pneumokokkirokotekysely&diff=25019Pneumokokkirokotekysely2014-07-17T12:01:21Z<p>Sharp: </p>
<hr />
<div>== Kysely ==<br />
<rcode embed=1 label="Vastaa kyselyyn" showcode=-1 variables="<br />
name:v1|description:'''1. Ikäsi'''|type:selection|options:'alle 20';alle 20;'21-30';21-30;'31-60';31-60;'yli 61';yli 61|<br />
name:v2|description:'''2. Katso yllä olevaa taulukkoa kahden eri rokotteen hinnoista ja hyötyistä. Kumpi rokote mielestäsi pitäisi valita ja miksi?'''|type:selection|options:<br />
'Rokote A halvempi'; Rokote A, koska se on halvempi rokote.;<br />
'Rokote A kokonaiskustannukset'; Rokote A, koska sen kokonaiskustannukset ovat pienemmät.;<br />
'Rokote A kustannustehokkuus'; Rokote A, koska se maksaa vähemmän yhtä sairastumisen estoa kohti.;<br />
'Rokote B vaikuttavampi'; Rokote B, koska se vähentää sairastamista enemmän, rahasta ei väliä.;<br />
'Rokote B lisähinta kannattaa'; Rokote B, koska 5 kultarahaa ei ole liikaa yhden sairastumisen estämisestä.;<br />
'Muu on tärkeintä';Ei voi sanoa, koska jokin muu asia on tärkeintä. (Tarkenna alla olevaan laatikkoon)|<br />
name:v3|description:Kommentteja tai tarkennuksia kysymykseen 2 liittyen|type:textbox|<br />
name:v4|description:'''3. Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden terveen elinvuoden* säästämiseen?'''|type:checkbox|options:<br />
'EVS, elintavat';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.;<br />
'EVS, ominaisuudet';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.|<br />
name:v5|description:Terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen yli (euroa)|type:text|<br />
name:v6|description:Mutta alle|type:text|<br />
name:v7|description:Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat per elinvuosi halvempia kuin (euroa)|type:text|<br />
name:v8|description:'''4. Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?'''|type:checkbox|options:<br />
'Rokotukset kaikille';Tehdä rokotukset pakollisiksi kaikille.;<br />
'Rokotukset koululaisille';Vaaditaan voimassa olevat rokotukset esim. koululaisilta.;<br />
'Kannustus ja tieto';Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.;<br />
'Ilmaiset rokotukset';Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.;<br />
'Ei pidä puuttua';Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.|<br />
name:v9|description:'''5. Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)'''|type:checkbox|options:<br />
'Kansanterveys';Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.;<br />
'Yksittäinen ihminen';Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.;<br />
'Laumasuoja';Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.;<br />
'Kaikki yllä';Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mikään niistä ei yksinään riitä eikä anna vastausta.|<br />
name:v10|description:'''6. Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.'''|type:checkbox|options:<br />
'Kipu tai ärsytys';Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla;<br />
'Korkea kuume';Korkea kuume;<br />
'Kouristukset';Kouristukset;<br />
'Hengityskatkos';Tilapäinen hengityskatkos;<br />
'Allerginen reaktio';Vakavat allergiset reaktiot;<br />
'Kollapsi';Kollapsi eli lihasten äkillinen veltostuminen;<br />
'Narkolepsia';Narkolepsia|<br />
name:v11|description:'''7. Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Mikä se on? Onko sinulla yleisiä kommentteja, joita et saanut vastauksissa esille?'''|type:textbox|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'|<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'<br />
"><br />
library(OpasnetUtils)<br />
<br />
kysymykset <- c(<br />
"Ikä",<br />
"Rokotevalinta A200 B500",<br />
"Rokotevalinta kommentteja",<br />
"Montako euroa on yksi QALY?",<br />
"Montako euroa QALY yli",<br />
"Montako euroa QALY alle",<br />
"Montako euroa QALY vähintään, ei kiinteää ylärajaa",<br />
"Yhteiskunnan varmistama laumasuoja",<br />
"Rokotevertailuperusteet",<br />
"Kestämättömät haittavaikutukset",<br />
"Uusia kohtia ja kysymyksiä"<br />
)<br />
<br />
v4 <- paste(v4, collapse = "; ")<br />
v8 <- paste(v8, collapse = "; ") <br />
v9 <- paste(v9, collapse = "; ")<br />
v10 <- paste(v10, collapse = "; ")<br />
<br />
# Vähän vaarallista että mikä tahansa virhe johtaa siihen että <br />
# data tulkitaan olemassa olemattomaksi, R tietokantafunktiot ovat <br />
# jäljessä kehitystä: .series ja .locations eivät toimi subseteille.<br />
obs <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
if (!is.null(obs)) {<br />
if ("Obs" %in% colnames(obs)) {<br />
at <- "replace"<br />
obs <- 1<br />
} else {<br />
at <- "append"<br />
obs <- obs$KyselyID<br />
obs <- gsub("[A-Za-z]", "", as.character(obs))<br />
obs <- max(as.numeric(obs)) + 1<br />
}<br />
} else {<br />
at <- "replace"<br />
obs <- 1<br />
}<br />
dat <- data.frame(<br />
KyselyID = obs, <br />
Aika = date(), <br />
Kysymys = kysymykset, <br />
Result = c(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Kysely", <br />
act_type = at, <br />
language = "fin", <br />
who = wiki_username<br />
)<br />
<br />
oprint("Kiitos. Vastauksesi on onnistuneesti tallennettu.")<br />
</rcode><br />
<br />
<rcode label="Näytä vastaukset" embed=1 showcode=-1 variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
library(OpasnetUtilsExt)<br />
<br />
pagename <- gsub(" ", "_", pagename)<br />
dat <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
if (is.null(dat)) oprint("Vastauksia ei löytynyt") else {<br />
<br />
if(nrow(dat) == 0) {<br />
oprint("Kaikki kommentit on sisällytetty tekstiin.")<br />
} else {<br />
oprint(dat, include.rownames = FALSE)<br />
}<br />
}<br />
</rcode><br />
<br />
*Terveellä elinvuodella tarkoitetaan yhtä vuotta vastaavaa aikaa, joka eletään tervettä elämää. Tämän vuoden ei tarvitse olla<br />
yhden ihmisen yhtenäinen elinvuosi, vaan voi koostua monen ihmisen päivästä kuukausiin mittaisista tässä tapauksessa terveyden-<br />
huollon ansiosta terveinä vietetyistä ajanjaksoista, jotka ovat yhteensä vuoden. Tarkempi kuvaus löytyy sivulta [[Tautitaakka]].<br />
<br />
'''Kysymyksen 2 taustamateriaali'''<br />
<br />
{| {{prettytable}}<br />
|+'''Rokottamisesta koituvat hyödyt ja kustannukset<br />
|-<br />
| || '''Hinta''' || '''Kustannus''' || '''Sairaustapaukset''' || '''Hinta/Säästettävä sairaustapaus''' || '''Sairastamisen hinta''' || '''Kokonaiskustannus'''<br />
|-<br />
| '''Rokote A''' ||align="center"| 20 ||align="center"| 60 ||align="center"| 40 ||align="center"| 4 ||align="center" rowspan="3"| 2 ||align="center"| 160<br />
|-<br />
| '''Rokote B''' || align="center"| 80 || align="center"| 70 || align="center"| 30 || align="center"| 5 || align="center"| 210<br />
|-<br />
| '''Ei rokoteta''' || align="center"| 0 || align="center"| 120 || align="center"| 60 || align="center"| - || align="center"| 240<br />
|}<br />
<br />
Yllä olevassa taulukossa näet esimerkin tilanteesta, jossa tehdään päätöstä kahden eri rokotteen ostamisen ja käyttämisen väliltä. Samat arvot ovat löydettävissä myös tämän selityksen alta kuvaajien muodossa.<br />
*Ensimmäinen sarake, eli '''hinta''', kertoo rokotteen osamiseen tarvittava rahamäärän kultarahoina. Rokotteen A ostaminen kaikille maksaa siis 20 kultarahaa, ja rokotteen B ostaminen 80.<br />
*Toinen sarake, '''kustannus''', laskee yhteen muut rokotteen käytöstä tai käyttämättömyydestä tulevat kustannukset. Siihen kuuluvat rokottamiseen tarvittavaan helnkilökuntaan kuuluvat kustannukset, sekä sairaustapauksista aiheutuvat kustannukset. Myös sairastamisest aiheutuneet työpoissaoloista johtuvat kustannukset on laskettu mukaan tähän lukuun.<br />
*'''Sairaustapaukset''' kertovat, montako ihmistä sairastuu rokotteen estämäään tautiin rokotten saamisesta huolimatta, tai kokonaan ilman sitä.<br />
*'''Hinta/säästettävä sairaustapaus''' on rokotteen hinta+kustannus jaettuna sillä määrällä, kuinka monta sairastapausta rokotteen ottaminen estää, eli 60 (sairastapausten määrä ilman rokotetta) - sairaustapausten määrä rokotteen kanssa. Se kertoo, kuinka monta kultarahaa maksetaan siitä, että yksi ihminen ei sairastu tautiin.<br />
*'''Sairastamisen hinta''' kertoo siitä, kuinka iäväksi asiantuntijat arvioivat taudin sairastamisen. Tälle sairastammiselle henkisesti ja fyysisesti kärsimiselle on annettu rahallinen arvo, tässä tapauksessa 2 kultarahaa, joka on saairastamisen hinta. Näin voidaan rahallisesti arvioida, kuinka paljon kärsimistä syntyy, kun 60 ihmistä saa taudin.<br />
*'''Kokonaiskustannuksiin''' on laskettu yhteen hinta, kustannnukset sekä sairastamisen hinta kerrottuna sairaustapausten määrällä.<br />
<br />
[[Kuva:rokotekysely.jpg]]<br />
<br />
== Kysymys ==<br />
<br />
Millainen pitäisi olla pneumokokkirokotekyselyn, jotta<br />
* sen avulla osallistuminen [[pneumokokkirokote|rokotehankintaprojektiin]] olisi helppoa,<br />
* siihen vastaaminen ei vaadi erityistä perehtyneisyyttä pneumokokkiin tai rokotteisiin,<br />
* siinä kartoitetaan erityisesti arvokysymyksiä (mm. jotta ei tarvita perehtyneisyyttä, ks. yllä),<br />
* siinä pyrkimyksenä on kartoittaa millaisia näkemyksiä on eikä niinkään niiden tarkkoja frekvenssejä väestössä?<br />
<br />
== Vastaus ==<br />
<br />
== Katso myös ==<br />
<br />
{{pneumokokkirokote}}<br />
<br />
== Viitteet ==<br />
<br />
<references/><br />
<br />
* Tähän voisi kerätä viitteitä eri yhteyksissä ja eri maissa käytetyistä euroa per DALY -kustannustehokkuussuhteista.</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Pneumokokkirokotekysely&diff=25016Pneumokokkirokotekysely2014-07-17T11:40:09Z<p>Sharp: /* Kysely */</p>
<hr />
<div>== Kysely ==<br />
<br />
{| {{prettytable}}<br />
|+'''Rokottamisesta koituvat hyödyt ja kustannukset<br />
|-<br />
| || '''Hinta''' || '''Kustannus''' || '''Sairaustapaukset''' || '''Hinta/Säästettävä sairaustapaus''' || '''Sairastamisen hinta''' || '''Kokonaiskustannus'''<br />
|-<br />
| '''Rokote A''' ||align="center"| 20 ||align="center"| 60 ||align="center"| 40 ||align="center"| 4 ||align="center" rowspan="3"| 2 ||align="center"| 160<br />
|-<br />
| '''Rokote B''' || align="center"| 80 || align="center"| 70 || align="center"| 30 || align="center"| 5 || align="center"| 210<br />
|-<br />
| '''Ei rokoteta''' || align="center"| 0 || align="center"| 120 || align="center"| 60 || align="center"| - || align="center"| 240<br />
|}<br />
<br />
Yllä olevassa taulukossa näet esimerkin tilanteesta, jossa tehdään päätöstä kahden eri rokotteen ostamisen ja käyttämisen väliltä. Samat arvot ovat löydettävissä myös tämän selityksen alta kuvaajien muodossa.<br />
*Ensimmäinen sarake, eli '''hinta''', kertoo rokotteen osamiseen tarvittava rahamäärän kultarahoina. Rokotteen A ostaminen kaikille maksaa siis 20 kultarahaa, ja rokotteen B ostaminen 80.<br />
*Toinen sarake, '''kustannus''', laskee yhteen muut rokotteen käytöstä tai käyttämättömyydestä tulevat kustannukset. Siihen kuuluvat rokottamiseen tarvittavaan helnkilökuntaan kuuluvat kustannukset, sekä sairaustapauksista aiheutuvat kustannukset. Myös sairastamisest aiheutuneet työpoissaoloista johtuvat kustannukset on laskettu mukaan tähän lukuun.<br />
*'''Sairaustapaukset''' kertovat, montako ihmistä sairastuu rokotteen estämäään tautiin rokotten saamisesta huolimatta, tai kokonaan ilman sitä.<br />
*'''Hinta/säästettävä sairaustapaus''' on rokotteen hinta+kustannus jaettuna sillä määrällä, kuinka monta sairastapausta rokotteen ottaminen estää, eli 60 (sairastapausten määrä ilman rokotetta) - sairaustapausten määrä rokotteen kanssa. Se kertoo, kuinka monta kultarahaa maksetaan siitä, että yksi ihminen ei sairastu tautiin.<br />
*'''Sairastamisen hinta''' kertoo siitä, kuinka iäväksi asiantuntijat arvioivat taudin sairastamisen. Tälle sairastammiselle henkisesti ja fyysisesti kärsimiselle on annettu rahallinen arvo, tässä tapauksessa 2 kultarahaa, joka on saairastamisen hinta. Näin voidaan rahallisesti arvioida, kuinka paljon kärsimistä syntyy, kun 60 ihmistä saa taudin.<br />
*'''Kokonaiskustannuksiin''' on laskettu yhteen hinta, kustannnukset sekä sairastamisen hinta kerrottuna sairaustapausten määrällä.<br />
<br />
[[Kuva:rokotekysely.jpg]]<br />
<br />
{{comment|# |Kysely on paikoin vähän vaikea. Esim. kys. 2:ssa saa lukea tekstin pariin otteeseen saadakseen selville mitä oikeastaan kysytään ja kys. 3:ssa on hankala oivaltaa mitä halutaan vastattavan yli ja/tai alle kenttiin. Edellisiä pitäisi vähän parannella, jotta niihin osataan vastata (edes jotain). Lisäksi voisi miettiä kysymysjärjestystä. Olisiko hyvä laittaa alkuun helpommin ymmärrettäviä ja helpommin vastattavia kysymyksiä (4-6) ja hankalammat kysymykset (2-3) viimeisiksi? Samalla alkupään kysymyksiä voisi ehkä vähän viilata siten, että ne perehdyttäisivät vastaajia kyselyn aiheeseen ja siten auttaisivat vastaajia ymmärtämään lopun kysymykset ja vastaamaan niihin järkevästi.|--[[Käyttäjä:Mikko Pohjola|Mikko Pohjola]] ([[Keskustelu käyttäjästä:Mikko Pohjola|keskustelu]]) 16. heinäkuuta 2014 kello 11.58 (UTC)}}<br />
: {{defend|# |Hankala on, siihen ovat muutkin päätyneet. Ratkaisumme on tehdä alkuun erillinen stoori, jossa kuvataan kuvitteellinen rokotustilanne ja siihen liittyvät kustannukset, terveysvaikutukset, kustannusvaikuttavuudet, kustannushyötyanalyysit ja kaikki muutkin kysytyt asiat. Laitamme myös selventeviä kaavioita. Selityksen perusteella sitten esitetään noita kysymyksiä, toivottavasti ymmärrettävämmässä muodossa.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 16. heinäkuuta 2014 kello 13.18 (UTC)}}<br />
<br />
{{comment|# |Timo: ongelma koodissa lienee se, että checkbox-tyyppiset kysymykset tuottavat tekstivektorin, joka on eri pituinen riippuen siitä mitä on vastattu. Nämä pitäisi siis varmaan ensin pastettaa yhteen ja erottaa esim. puolipisteellä, niin että joka vastaus olisi yhden alkion mittainen tekstivektori. Sitten tallentuu.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 16. heinäkuuta 2014 kello 13.18 (UTC)}}<br />
<br />
<rcode embed=1 label="Vastaa kyselyyn" showcode=-1 variables="<br />
name:v1|description:'''1. Ikäsi'''|type:selection|options:'alle 20';alle 20;'21-30';21-30;'31-60';31-60;'yli 61';yli 61|<br />
name:v2|description:'''2. Katso yllä olevaa taulukkoa kahden eri rokotteen hinnoista ja hyötyistä. Kumpi rokote mielestäsi pitäisi valita ja miksi?'''|type:selection|options:<br />
'Rokote A halvempi'; Rokote A, koska se on halvempi rokote.;<br />
'Rokote A kokonaiskustannukset'; Rokote A, koska sen kokonaiskustannukset ovat pienemmät.;<br />
'Rokote A kustannustehokkuus'; Rokote A, koska se maksaa vähemmän yhtä sairastumisen estoa kohti.;<br />
'Rokote B vaikuttavampi'; Rokote B, koska se vähentää sairastamista enemmän, rahasta ei väliä.;<br />
'Rokote B lisähinta kannattaa'; Rokote B, koska 5 kultarahaa ei ole liikaa yhden sairastumisen estämisestä.;<br />
'Muu on tärkeintä';Ei voi sanoa, koska jokin muu asia on tärkeintä. (Tarkenna alla olevaan laatikkoon)|<br />
name:v3|description:Kommentteja tai tarkennuksia kysymykseen 2 liittyen|type:textbox|<br />
name:v4|description:'''3. Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen?'''|type:checkbox|options:<br />
'EVS, elintavat';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.;<br />
'EVS, ominaisuudet';Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.|<br />
name:v5|description:Yli|type:text|<br />
name:v6|description:Alle|type:text|<br />
name:v7|description:Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat per elinvuosi halvempia kuin euroa|type:text|<br />
name:v8|description:'''4. Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?'''|type:checkbox|options:<br />
'Rokotukset kaikille';Tehdä rokotukset pakollisiksi kaikille.;<br />
'Rokotukset koululaisille';Vaaditaan voimassa olevat rokotukset esim. koululaisilta.;<br />
'Kannustus ja tieto';Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.;<br />
'Ilmaiset rokotukset';Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.;<br />
'Ei pidä puuttua';Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.|<br />
name:v9|description:'''5. Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)'''|type:checkbox|options:<br />
'Kansanterveys';Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.;<br />
'Yksittäinen ihminen';Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.;<br />
'Laumasuoja';Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.;<br />
'Kaikki yllä';Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mikään niistä ei yksinään riitä eikä anna vastausta.|<br />
name:v10|description:'''6. Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.'''|type:checkbox|options:<br />
'Kipu tai ärsytys';Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla;<br />
'Korkea kuume';Korkea kuume;<br />
'Kouristukset';Kouristukset;<br />
'Hengityskatkos';Tilapäinen hengityskatkos;<br />
'Allerginen reaktio';Vakavat allergiset reaktiot;<br />
'Kollapsi';Kollapsi eli lihasten äkillinen veltostuminen;<br />
'Narkolepsia';Narkolepsia|<br />
name:v11|description:'''7. Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Mikä se on? Onko sinulla yleisiä kommentteja, joita et saanut vastauksissa esille?'''|type:textbox|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'|<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'<br />
"><br />
library(OpasnetUtils)<br />
<br />
kysymykset <- c(<br />
"Ikä",<br />
"Rokotevalinta A200 B500",<br />
"Rokotevalinta kommentteja",<br />
"Montako euroa on yksi QALY?",<br />
"Montako euroa QALY yli",<br />
"Montako euroa QALY alle",<br />
"Montako euroa QALY vähintään, ei kiinteää ylärajaa",<br />
"Yhteiskunnan varmistama laumasuoja",<br />
"Rokotevertailuperusteet",<br />
"Kestämättömät haittavaikutukset",<br />
"Uusia kohtia ja kysymyksiä"<br />
)<br />
<br />
v4 <- paste(v4, collapse = "; ")<br />
v8 <- paste(v8, collapse = "; ") <br />
v9 <- paste(v9, collapse = "; ")<br />
v10 <- paste(v10, collapse = "; ")<br />
<br />
# Vähän vaarallista että mikä tahansa virhe johtaa siihen että <br />
# data tulkitaan olemassa olemattomaksi, R tietokantafunktiot ovat <br />
# jäljessä kehitystä: .series ja .locations eivät toimi subseteille.<br />
obs <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
if (!is.null(obs)) {<br />
if ("Obs" %in% colnames(obs)) {<br />
at <- "replace"<br />
obs <- 1<br />
} else {<br />
at <- "append"<br />
obs <- obs$KyselyID<br />
obs <- gsub("[A-Za-z]", "", as.character(obs))<br />
obs <- max(as.numeric(obs)) + 1<br />
}<br />
} else {<br />
at <- "replace"<br />
obs <- 1<br />
}<br />
dat <- data.frame(<br />
KyselyID = obs, <br />
Aika = date(), <br />
Kysymys = kysymykset, <br />
Result = c(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10)<br />
)<br />
<br />
opbase.upload(<br />
dat, <br />
ident = ident, <br />
name = pagename, <br />
subset = "Kysely", <br />
act_type = at, <br />
language = "fin", <br />
who = wiki_username<br />
)<br />
<br />
oprint("Kiitos. Vastauksesi on onnistuneesti tallennettu.")<br />
</rcode><br />
<br />
<rcode label="Näytä vastaukset" embed=1 showcode=-1 variables="<br />
name:ident|type:hidden|default:'{{{1|Op_fi{{PAGEID}}}}}'|<br />
name:pagename|type:hidden|default:'{{PAGENAME}}'<br />
"><br />
library(OpasnetUtils)<br />
library(OpasnetUtilsExt)<br />
<br />
pagename <- gsub(" ", "_", pagename)<br />
dat <- tryCatch(<br />
opbase.data(ident, subset = "Kysely"), <br />
error = function(...) return(NULL)<br />
)<br />
<br />
if (is.null(dat)) oprint("Vastauksia ei löytynyt") else {<br />
<br />
if(nrow(dat) == 0) {<br />
oprint("Kaikki kommentit on sisällytetty tekstiin.")<br />
} else {<br />
oprint(dat, include.rownames = FALSE)<br />
}<br />
}<br />
</rcode><br />
<br />
== Kysymys ==<br />
<br />
Millainen pitäisi olla pneumokokkirokotekyselyn, jotta<br />
* sen avulla osallistuminen [[pneumokokkirokote|rokotehankintaprojektiin]] olisi helppoa,<br />
* siihen vastaaminen ei vaadi erityistä perehtyneisyyttä pneumokokkiin tai rokotteisiin,<br />
* siinä kartoitetaan erityisesti arvokysymyksiä (mm. jotta ei tarvita perehtyneisyyttä, ks. yllä),<br />
* siinä pyrkimyksenä on kartoittaa millaisia näkemyksiä on eikä niinkään niiden tarkkoja frekvenssejä väestössä?<br />
<br />
== Vastaus ==<br />
<br />
Kysymyksissä puhutaan elinvuodesta. Sillä tarkoitetaan yhtä vuotta vastaavaa aikaa, joka menetetään sairauden tai kuoleman takia. Tarkempi kuvaus löytyy sivulta [[Tautitaakka]].<br />
<br />
{{comment|# |Kysymykseen 2 pitäisi laittaa realistiset luvut.|--[[Käyttäjä:Jouni|Jouni Tuomisto]] ([[Keskustelu käyttäjästä:Jouni|keskustelu]]) 15. heinäkuuta 2014 kello 10.14 (UTC)}}<br />
<br />
# Ikä<br />
#* <20<br />
#* 21-30<br />
#* 31-60<br />
#* >60<br />
# Kuvittele, että tarjolla on kaksi rokotetta, joista rokote A on melko vaikuttava (se säästää 200 tervettä elinvuotta) ja hyvin halpa (koko rokotusohjelma maksaa vain 200&nbsp;000 euroa vuodessa) eli se säästää yhden elinvuoden jokaista sijoitettua 1000 euroa kohden. Toinen rokote B on selvästi vaikuttavampi (se säästää 500 tervettä elinvuotta) mutta on selvästi kalliimpi (koko rokotusohjelma maksaa 1&nbsp;000&nbsp;000 euroa) eli se säästää yhden elinvuoden jokaista sijoitettua 2000 euroa kohden eli se on kustannustehokkuudeltaan huonompi kuin ensimmäinen. Kumpi rokote pitäisi valita?<br />
#* Rokote A, koska se on kustannustehokkaampi (1000 euroa per elinvuosi on parempi kuin 2000 euroa per elinvuosi)<br />
#* Rokote B, koska se on vaikuttavampi (500 tervettä elinvuotta on parempi kuin 200)<br />
#* Rokote B, koska 300 lisäelinvuodesta kannattaa maksaa lisähinta 800&nbsp;000 euroa rokotteeseen A verrattuna eli 2700 euroa per elinvuosi.<br />
#* Ei voi sanoa, koska rokotteen turvallisuus on tärkeintä eikä tässä ole tietoja turvallisuudesta.<br />
#* Ei voi sanoa, koska jokin muu asia on tärkeintä. Mikä? ______________<br />
#* Ei voi sanoa, koska vertailuperusteena pitäisi käyttää kokonaiskustannuksia. Näihin kuuluu myös terveydenhuollolle ja talouselämälle aiheutuneet kustannukset sekä sairauden aiheuttama haitta rahaksi muutettuna.<br />
#* Kommentteja kysymykseen 1 liittyen:_____________________<br />
# Montako euroa sinun mielestäsi terveydenhuollon pitäisi satsata yhden terveen elinvuoden säästämiseen?<br />
#* Noin ______ euroa - _______ euroa.<br />
#* Ylärajaa ei voi asettaa kaikissa tilanteissa, mutta kaikki sellaiset toimet pitäisi tehdä jotka ovat halvempia kuin _____ euroa per elinvuosi.<br />
#* Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu siitä johtuuko elinvuoden menetys ihmisen omista toimista, esimerkiksi elintavoista.<br />
#* Kysymykseen ei voi vastata suoraviivaisesti, koska se riippuu potilaan iästä tai muista ominaisuuksista.<br />
# Ajatellaan jotakin rokotetta, jolla pystytään estämään vakava, joskus kuolemaan johtava tauti. Onko olemassa eettisesti niin kestämättömiä haittavaikutuksia, että sellaisen ilmaantuminen estäisi rokotteen käyttämisen kokonaan? Voit valita useita vaihtoehtoja.<br />
#* Kipu tai ärsytys pistoskohdassa kaikilla rokotetuilla<br />
#* Korkea kuume<br />
#* Kouristukset<br />
#* Tilapäinen hengityskatkos<br />
#* Vakavat allergiset reaktiot<br />
#* Kollapsi eli lihasten äkillinen veltostuminen<br />
#* Narkolepsia<br />
# Millä perusteilla rokotteita pitäisi vertailla? (Valitse kaksi mielestäsi tärkeintä)<br />
#* Rokotteen hyötyjä ja haittoja pitäisi miettiä kansanterveydellisin perustein eli laskea yhteen kaikki hyödyt ja haitat koko väestössä.<br />
#* Yksittäisen ihmisen kohdalla estettävän taudin on oltava selvästi vakavampi kuin rokottamisesta aiheutuvat mahdolliset haitat.<br />
#* Antaako rokote hyvän laumasuojan, eli miten hyvin rokote suojaa myös rokottamattomia estämällä tautien leviämistä.<br />
#* Asiaa täytyy pohtia kaikista yllä olevista näkökulmista, mikään niistä ei yksinään riitä eikä anna vastausta.<br />
# Laumasuoja tarkoittaa tilannetta, jossa rokotettujen osuus väestöstä on niin suuri, etteivät taudit pääse leviämään myöskään rokottamattomiin. Mitä yhteiskunnan pitäisi tehdä laumasuojan varmistamiseksi?<br />
#* Tehdä rokotukset pakollisiksi kaikille.<br />
#* Vaaditaan voimassa olevat rokotukset esim. koululaisilta.<br />
#* Aktiivisesti kannustaa ihmisiä ottamaan rokotteita ja jakaa niistä tietoa.<br />
#* Tehdään ihmisille ilmaisiksi ne rokotukset, joissa yhteiskunta katsoo laumasuojan tarpeelliseksi.<br />
#* Rokottaminen on ihmisen terveyteen liittyvä yksityisasia, johon yhteiskunnan ei pitäisi puuttua.<br />
# Haluaisitko lisätä johonkin kysymykseen uuden vaihtoehdon tai kyselyyn kokonaan uuden kysymyksen? Mikä se on? _______________<br />
<br />
== Katso myös ==<br />
<br />
{{pneumokokkirokote}}<br />
<br />
== Viitteet ==<br />
<br />
<references/><br />
<br />
* Tähän voisi kerätä viitteitä eri yhteyksissä ja eri maissa käytetyistä euroa per DALY -kustannustehokkuussuhteista.</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Hiekkalaatikko2&diff=25001Hiekkalaatikko22014-07-17T09:39:20Z<p>Sharp: </p>
<hr />
<div><rcode live=1 showcode=-1 embed=1><br />
v4 <- c("a", "b", "c")<br />
v8 <- c("d", "e", "f")<br />
v9 <- c("g", "h", "i", "j")<br />
v10 <- c("k", "l")<br />
<br />
for (var in ) {<br />
print(var)<br />
if (length(var) > 1) { y <- var[1]<br />
for (element in 2:length(var)) y <- paste(y, var[element], sep=";")<br />
print(var)<br />
var <- y<br />
print(var)<br />
}<br />
}<br />
print(v4)<br />
print(v8)<br />
print(v9)<br />
print(v10)<br />
</rcode></div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=24925Kohdistamo2014-07-14T10:38:14Z<p>Sharp: </p>
<hr />
<div>[[op_en:Timetracker]]<br />
<rcode name="answer" embed=1 showcode=0 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="output" embed=1 showcode=0 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä, projekti){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
<br />
# pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
# Varoitus tulee arvosta k1 mutta tällä ei ole käytännön merkitystä. Varoitus ei ole virhe eikä toiminta keskeydy.<br />
#<br />
# pois <- subset(pois, pois > 0)<br />
# dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# # ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
#<br />
# dat on data.frame ja siksi et voi käyttää sitä vertailussa vektoriin. Sen sijaan 1:nrow(dat) tuottaa juoksevan rivinumeroinnin dat:lle. <br />
# Kirjausnro puolestaan pitää muuttaa numeroiksi, jotta sitä voi verrata rivinumeroihin. Suositeltavampi tyyli on tämä:<br />
<br />
pois <- as.numeric(levels(poistot$Kirjausnro)[poistot$Kirjausnro])<br />
dat <- dat[!1:nrow(dat) %in% pois , colnames(dat) != "Result"]<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
if (tekijä != "Kaikki") tekijä <- gsub("\\s", "", unlist(strsplit(tekijä, ","))) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
kirjausajat(alku, loppu, tekijä, projekti)<br />
<br />
<br />
#objects.store(output, kirjausajat)<br />
# Periaatteena on kaksi koodia: initiate luo funktiot, ovariablet ja muut yleiskäyttöiset oliot ja tallentaa ne serverille.<br />
# Käyttökoodi answer kutsuu noita olioita ja suorittaa niillä tapauskohtaisia toimenpiteitä. Koska tämä on tapauskohtainen<br />
# koodi, ei kannata tallentaa olioita (ethän kutsu niitä missään). Kunhan koodi on vakiintunut, kannattaa se jakaa<br />
# yleiseen ja projektikohtaiseen. Esimerkiksi tekijöiden tunnukset kannattaa ottaa funktioon parametriksi, jotta funktio<br />
# olisi yleispätevä, ja parametrin arvo kerrotaan projektikohtaisessa koodissa.<br />
</rcode><br />
<br />
<br />
<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
nro <- gsub("\\s", "", unlist(strsplit(nro, ","))) # Pilkotaan pilkusta ja poistetaan alku- ja loppuvälilyönnit<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", <br />
act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Nämä kirjaukset poistettu onnistuneesti.\n")<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=24924Kohdistamo2014-07-14T10:34:06Z<p>Sharp: </p>
<hr />
<div>[[op_en:Timetracker]]<br />
<br />
<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="output" embed=1 showcode=0 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä, projekti){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
<br />
# pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
# Varoitus tulee arvosta k1 mutta tällä ei ole käytännön merkitystä. Varoitus ei ole virhe eikä toiminta keskeydy.<br />
#<br />
# pois <- subset(pois, pois > 0)<br />
# dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# # ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
#<br />
# dat on data.frame ja siksi et voi käyttää sitä vertailussa vektoriin. Sen sijaan 1:nrow(dat) tuottaa juoksevan rivinumeroinnin dat:lle. <br />
# Kirjausnro puolestaan pitää muuttaa numeroiksi, jotta sitä voi verrata rivinumeroihin. Suositeltavampi tyyli on tämä:<br />
<br />
pois <- as.numeric(levels(poistot$Kirjausnro)[poistot$Kirjausnro])<br />
dat <- dat[!1:nrow(dat) %in% pois , colnames(dat) != "Result"]<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
if (tekijä != "Kaikki") tekijä <- gsub("\\s", "", unlist(strsplit(tekijä, ","))) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
kirjausajat(alku, loppu, tekijä, projekti)<br />
</rcode><br />
<br />
<br />
<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
nro <- gsub("\\s", "", unlist(strsplit(nro, ","))) # Pilkotaan pilkusta ja poistetaan alku- ja loppuvälilyönnit<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", <br />
act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Nämä kirjaukset poistettu onnistuneesti.\n")<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=24923Kohdistamo2014-07-14T10:33:14Z<p>Sharp: </p>
<hr />
<div>[[op_en:Timetracker]]<br />
<br />
<rcode name="initiate" live=1 embed=1 showcode=0 label="Alusta muuttujat"><br />
library(OpasnetUtils)<br />
<br />
objects.store(output, kirjausajat)<br />
# Periaatteena on kaksi koodia: initiate luo funktiot, ovariablet ja muut yleiskäyttöiset oliot ja tallentaa ne serverille.<br />
# Käyttökoodi answer kutsuu noita olioita ja suorittaa niillä tapauskohtaisia toimenpiteitä. Koska tämä on tapauskohtainen<br />
# koodi, ei kannata tallentaa olioita (ethän kutsu niitä missään). Kunhan koodi on vakiintunut, kannattaa se jakaa<br />
# yleiseen ja projektikohtaiseen. Esimerkiksi tekijöiden tunnukset kannattaa ottaa funktioon parametriksi, jotta funktio<br />
# olisi yleispätevä, ja parametrin arvo kerrotaan projektikohtaisessa koodissa.<br />
</rcode><br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="output" embed=1 showcode=0 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä, projekti){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
<br />
# pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
# Varoitus tulee arvosta k1 mutta tällä ei ole käytännön merkitystä. Varoitus ei ole virhe eikä toiminta keskeydy.<br />
#<br />
# pois <- subset(pois, pois > 0)<br />
# dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# # ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
#<br />
# dat on data.frame ja siksi et voi käyttää sitä vertailussa vektoriin. Sen sijaan 1:nrow(dat) tuottaa juoksevan rivinumeroinnin dat:lle. <br />
# Kirjausnro puolestaan pitää muuttaa numeroiksi, jotta sitä voi verrata rivinumeroihin. Suositeltavampi tyyli on tämä:<br />
<br />
pois <- as.numeric(levels(poistot$Kirjausnro)[poistot$Kirjausnro])<br />
dat <- dat[!1:nrow(dat) %in% pois , colnames(dat) != "Result"]<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
if (tekijä != "Kaikki") tekijä <- gsub("\\s", "", unlist(strsplit(tekijä, ","))) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
kirjausajat(alku, loppu, tekijä, projekti)<br />
</rcode><br />
<br />
<br />
<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
nro <- gsub("\\s", "", unlist(strsplit(nro, ","))) # Pilkotaan pilkusta ja poistetaan alku- ja loppuvälilyönnit<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", <br />
act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Nämä kirjaukset poistettu onnistuneesti.\n")<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=24922Kohdistamo2014-07-14T10:18:40Z<p>Sharp: </p>
<hr />
<div>[[op_en:Timetracker]]<br />
<rcode name="answer" embed=1 showcode=0 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="Output" embed=1 showcode=0 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä, projekti){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
<br />
# pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
# Varoitus tulee arvosta k1 mutta tällä ei ole käytännön merkitystä. Varoitus ei ole virhe eikä toiminta keskeydy.<br />
#<br />
# pois <- subset(pois, pois > 0)<br />
# dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# # ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
#<br />
# dat on data.frame ja siksi et voi käyttää sitä vertailussa vektoriin. Sen sijaan 1:nrow(dat) tuottaa juoksevan rivinumeroinnin dat:lle. <br />
# Kirjausnro puolestaan pitää muuttaa numeroiksi, jotta sitä voi verrata rivinumeroihin. Suositeltavampi tyyli on tämä:<br />
<br />
pois <- as.numeric(levels(poistot$Kirjausnro)[poistot$Kirjausnro])<br />
dat <- dat[!1:nrow(dat) %in% pois , colnames(dat) != "Result"]<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
if (tekijä != "Kaikki") tekijä <- gsub("\\s", "", unlist(strsplit(tekijä, ","))) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
kirjausajat(alku, loppu, tekijä, projekti)<br />
objects.store(Output, kirjausajat)<br />
# Periaatteena on kaksi koodia: initiate luo funktiot, ovariablet ja muut yleiskäyttöiset oliot ja tallentaa ne serverille.<br />
# Käyttökoodi answer kutsuu noita olioita ja suorittaa niillä tapauskohtaisia toimenpiteitä. Koska tämä on tapauskohtainen<br />
# koodi, ei kannata tallentaa olioita (ethän kutsu niitä missään). Kunhan koodi on vakiintunut, kannattaa se jakaa<br />
# yleiseen ja projektikohtaiseen. Esimerkiksi tekijöiden tunnukset kannattaa ottaa funktioon parametriksi, jotta funktio<br />
# olisi yleispätevä, ja parametrin arvo kerrotaan projektikohtaisessa koodissa.<br />
<br />
</rcode><br />
<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
nro <- gsub("\\s", "", unlist(strsplit(nro, ","))) # Pilkotaan pilkusta ja poistetaan alku- ja loppuvälilyönnit<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", <br />
act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Nämä kirjaukset poistettu onnistuneesti.\n")<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Sharp/Ty%C3%B6aika&diff=24919Käyttäjä:Sharp/Työaika2014-07-14T10:04:12Z<p>Sharp: /* Kohdistamon kirjaukset */</p>
<hr />
<div><t2b index="Aikalaji,Projekti,Alaprojekti,Havainto" Locations="alku,loppu,toistoväli,asti,kuvaus" unit="d"><br />
Työaika|Opasnet||||||<br />
</t2b><br />
{{puolusta|#: |Laskutettu 29.6.2012 asti|--[[Käyttäjä:Lhiq|Lhiq]] 19. huhtikuuta 2013 kello 12.09 (EEST)}}<br />
<br />
<br />
<br />
== Kohdistamon kirjaukset ==<br />
<br />
<rcode graphics=0 live=1 variables="<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Sharp|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
objects.latest("Op_fi3948", code_name = "Output")<br />
<br />
kirjausajat(alku, loppu, tekijä, projekti)<br />
</rcode><br />
<br />
==Katso myös==<br />
<br />
* [[Kohdistamo/Ohje]]<br />
* [[Kohdistamo]]</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=24918Kohdistamo2014-07-14T10:03:27Z<p>Sharp: </p>
<hr />
<div>[[op_en:Timetracker]]<br />
<rcode name="answer" embed=1 showcode=0 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="Output" embed=0 showcode=0 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä, projekti){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
#oprint(dat)<br />
#oprint(dat %in% poistot$Kirjausnro)<br />
<br />
# pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
# Varoitus tulee arvosta k1 mutta tällä ei ole käytännön merkitystä. Varoitus ei ole virhe eikä toiminta keskeydy.<br />
<br />
# pois <- subset(pois, pois > 0)<br />
# dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
## ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
<br />
# dat on data.frame ja siksi et voi käyttää sitä vertailussa vektoriin. Sen sijaan 1:nrow(dat) tuottaa juoksevan rivinumeroinnin dat:lle. <br />
# Kirjausnro puolestaan pitää muuttaa numeroiksi, jotta sitä voi verrata rivinumeroihin. Suositeltavampi tyyli on tämä:<br />
<br />
pois <- as.numeric(levels(poistot$Kirjausnro)[poistot$Kirjausnro])<br />
dat <- dat[!1:nrow(dat) %in% pois , colnames(dat) != "Result"]<br />
<br />
#oprint(dat)<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
if (tekijä != "Kaikki") tekijä <- unlist(strsplit(tekijä,",")) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
kirjausajat(alku, loppu, tekijä, projekti)<br />
objects.store(Output)<br />
# Periaatteena on kaksi koodia: initiate luo funktiot, ovariablet ja muut yleiskäyttöiset oliot ja tallentaa ne serverille.<br />
# Käyttökoodi answer kutsuu noita olioita ja suorittaa niillä tapauskohtaisia toimenpiteitä. Koska tämä on tapauskohtainen<br />
# koodi, ei kannata tallentaa olioita (ethän kutsu niitä missään). Kunhan koodi on vakiintunut, kannattaa se jakaa<br />
# yleiseen ja projektikohtaiseen. Esimerkiksi tekijöiden tunnukset kannattaa ottaa funktioon parametriksi, jotta funktio<br />
# olisi yleispätevä, ja parametrin arvo kerrotaan projektikohtaisessa koodissa.<br />
<br />
</rcode><br />
<br />
<br />
<rcode name="answer" embed=1 showcode=0 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
nro <- gsub("\\s", "", unlist(strsplit(nro, ","))) # Pilkotaan pilkusta ja poistetaan alku- ja loppuvälilyönnit<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", <br />
act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Nämä kirjaukset poistettu onnistuneesti.\n")<br />
<br />
oprint(dat)<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Sharp/Ty%C3%B6aika&diff=24890Käyttäjä:Sharp/Työaika2014-07-11T08:02:27Z<p>Sharp: /* Kohdistamon kirjaukset */</p>
<hr />
<div><t2b index="Aikalaji,Projekti,Alaprojekti,Havainto" Locations="alku,loppu,toistoväli,asti,kuvaus" unit="d"><br />
Työaika|Opasnet||||||<br />
</t2b><br />
{{puolusta|#: |Laskutettu 29.6.2012 asti|--[[Käyttäjä:Lhiq|Lhiq]] 19. huhtikuuta 2013 kello 12.09 (EEST)}}<br />
<br />
<br />
<br />
== Kohdistamon kirjaukset ==<br />
<br />
<rcode graphics=0 live=1 variables="<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Sharp|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
objects.latest("Op_fi3948", code_name = "kirjausajat")<br />
<br />
kirjausajat(alku, loppu, tekijä, projekti)<br />
</rcode><br />
<br />
==Katso myös==<br />
<br />
* [[Kohdistamo/Ohje]]<br />
* [[Kohdistamo]]</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=24889Kohdistamo2014-07-11T08:02:19Z<p>Sharp: </p>
<hr />
<div>[[op_en:Timetracker]]<br />
<rcode name="answer" embed=1 showcode=-1 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="Output" embed=1 showcode=-1 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä, projekti){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
#oprint(dat)<br />
#oprint(dat %in% poistot$Kirjausnro)<br />
<br />
pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
pois <- subset(pois, pois > 0)<br />
dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
<br />
#oprint(dat)<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
if (tekijä != "Kaikki") tekijä <- unlist(strsplit(tekijä,",")) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
kirjausajat(alku, loppu, tekijä, projekti)<br />
objects.store(kirjausajat)<br />
</rcode><br />
<br />
<br />
<rcode name="answer" embed=1 showcode=-1 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", act_type = "append", language = "fin",<br />
who = wiki_username)<br />
<br />
cat("Kirjaus poistettu onnistuneesti.\n")<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=24888Kohdistamo2014-07-11T07:54:44Z<p>Sharp: </p>
<hr />
<div>[[op_en:Timetracker]]<br />
<rcode name="answer" embed=1 showcode=-1 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="Output" embed=1 showcode=-1 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
#oprint(dat)<br />
#oprint(dat %in% poistot$Kirjausnro)<br />
<br />
pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
pois <- subset(pois, pois > 0)<br />
dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
<br />
#oprint(dat)<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
if (tekijä != "Kaikki") tekijä <- unlist(strsplit(tekijä,",")) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
kirjausajat(alku, loppu, tekijä)<br />
objects.store(kirjausajat)<br />
</rcode><br />
<br />
<br />
<rcode name="answer" embed=1 showcode=-1 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", act_type = "append", language = "fin",<br />
who = wiki_username)<br />
<br />
cat("Kirjaus poistettu onnistuneesti.\n")<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=24887Kohdistamo2014-07-11T07:47:33Z<p>Sharp: </p>
<hr />
<div>[[op_en:Timetracker]]<br />
<rcode name="answer" embed=1 showcode=-1 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="Output" embed=1 showcode=-1 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
#oprint(dat)<br />
#oprint(dat %in% poistot$Kirjausnro)<br />
<br />
pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
pois <- subset(pois, pois > 0)<br />
dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
<br />
#oprint(dat)<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
if (tekijä != "Kaikki") tekijä <- unlist(strsplit(tekijä,",")) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
kirjausajat(alku, loppu, tekijä)<br />
</rcode><br />
<br />
<br />
<rcode name="answer" embed=1 showcode=-1 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", act_type = "append", language = "fin",<br />
who = wiki_username)<br />
<br />
cat("Kirjaus poistettu onnistuneesti.\n")<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=24886Kohdistamo2014-07-11T07:46:43Z<p>Sharp: </p>
<hr />
<div>[[op_en:Timetracker]]<br />
<rcode name="answer" embed=1 showcode=-1 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="Output" embed=1 showcode=-1 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
#oprint(dat)<br />
#oprint(dat %in% poistot$Kirjausnro)<br />
<br />
pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
pois <- subset(pois, pois > 0)<br />
dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
<br />
#oprint(dat)<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
if (tekijä != "Kaikki") tekijä <- unlist(strsplit(tekijä,",")) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
kirjausajat(alku, loppu, tekijä)<br />
objects.store(kirjausajat)<br />
</rcode><br />
<br />
<br />
<rcode name="answer" embed=1 showcode=-1 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", act_type = "append", language = "fin",<br />
who = wiki_username)<br />
<br />
cat("Kirjaus poistettu onnistuneesti.\n")<br />
<br />
</rcode><br />
<br />
<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=Kohdistamo&diff=24885Kohdistamo2014-07-11T07:46:09Z<p>Sharp: </p>
<hr />
<div>[[op_en:Timetracker]]<br />
<rcode name="answer" embed=1 showcode=-1 label="Tallenna kirjaus" variables="<br />
name:työ|description:Minkä työn haluat kirjata?|type:selection|options:<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Ulos';Ulos;<br />
'Muu';Muu<br />
|default:'Pneumokokkirokote'|<br />
category:Henkilötietoa ei tarvitse antaa, jos olet kirjautuneena Opasnettiin|<br />
name:jaksoko|description:Mitä haluat kirjata?|type:selection|options:<br />
FALSE;Annan nykyhetken aloitusajaksi;<br />
TRUE;Annan työn alku- ja loppuhetken käsin|<br />
default:FALSE|<br />
name:muutyö|description:Muu työ, mikä?|type:text|<br />
category:Listalta puuttuva työ|category_conditions:työ;'Muu'|<br />
name:aika|description:Milloin aloitit?|type:datetime|<br />
category:Jakson ajoitus|category_conditions:jaksoko;TRUE|<br />
name:loppu|description:Mihin asti tämä työ jatkui?|type:datetime<br />
"><br />
library(OpasnetUtils)<br />
<br />
if(jaksoko) {<br />
alku <- as.character(aika)<br />
loppu <- as.character(loppu)<br />
} else {<br />
alku <- as.character(Sys.time())<br />
loppu <- NA<br />
}<br />
<br />
out <- data.frame(<br />
Työ = ifelse(työ == 'Muu', muutyö, työ),<br />
Henkilö = wiki_username,<br />
Aika = alku,<br />
Loppu = loppu,<br />
Result = 0<br />
)<br />
<br />
opbase.upload(input = out, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjaukset", <br />
obj_type = "variable", act_type = "append", language = "fin", who = wiki_username<br />
)<br />
<br />
cat("Kirjaus onnistui. Nämä tiedot tallennettiin\n")<br />
oprint(out[colnames(out) != "Result"])<br />
</rcode><br />
<br />
<br />
<br />
<rcode graphics=0 name="Output" embed=1 showcode=-1 label="Hae kirjauksia" variables="<br />
category:Hae kirjauksia|<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Kaikki|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
#oprint(dat)<br />
#oprint(dat %in% poistot$Kirjausnro)<br />
<br />
pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
pois <- subset(pois, pois > 0)<br />
dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
<br />
#oprint(dat)<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
if (tekijä != "Kaikki") tekijä <- unlist(strsplit(tekijä,",")) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
kirjausajat(alku, loppu, tekijä)<br />
</rcode><br />
<br />
<br />
<rcode name="answer" embed=1 showcode=-1 label="Poista kirjaus" variables="<br />
name:nro|description:Poistettavan kirjauksen Obs|type:text|<br />
category:Kirjauksen poisto|<br />
name:syy|description:Poiston syy|type:text<br />
"><br />
<br />
library(OpasnetUtils)<br />
<br />
dat <- data.frame(Kirjausnro = nro, Syy = syy, Result = 1)<br />
<br />
opbase.upload(input = dat, ident = "Op_fi3948", name = "Kohdistamo", subset = "Kirjauspoistot", act_type = "append", language = "fin",<br />
who = wiki_username)<br />
<br />
cat("Kirjaus poistettu onnistuneesti.\n")<br />
<br />
</rcode><br />
<br />
objects.store(kirjausajat)<br />
* Katso ohjeita sivulta [[Kohdistamo/Ohje]]<br />
* {{tuloslinkki}}</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Sharp/Ty%C3%B6aika&diff=24884Käyttäjä:Sharp/Työaika2014-07-11T07:12:37Z<p>Sharp: /* Kohdistamon kirjaukset */</p>
<hr />
<div><t2b index="Aikalaji,Projekti,Alaprojekti,Havainto" Locations="alku,loppu,toistoväli,asti,kuvaus" unit="d"><br />
Työaika|Opasnet||||||<br />
</t2b><br />
{{puolusta|#: |Laskutettu 29.6.2012 asti|--[[Käyttäjä:Lhiq|Lhiq]] 19. huhtikuuta 2013 kello 12.09 (EEST)}}<br />
<br />
<br />
<br />
== Kohdistamon kirjaukset ==<br />
<br />
<rcode graphics=0 live=1 variables="<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Sharp|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
#oprint(dat)<br />
#oprint(dat %in% poistot$Kirjausnro)<br />
<br />
pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
pois <- subset(pois, pois > 0)<br />
dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
<br />
#oprint(dat)<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
if (tekijä != "Kaikki") tekijä <- unlist(strsplit(tekijä,",")) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
työ$Aika <- as.character(työ$Aika)<br />
työ$Loppu <- as.character(työ$Loppu)<br />
oprint(työ)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
kirjausajat(alku, loppu, tekijä)<br />
</rcode><br />
<br />
==Katso myös==<br />
<br />
* [[Kohdistamo/Ohje]]<br />
* [[Kohdistamo]]</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Sharp/Ty%C3%B6aika&diff=24883Käyttäjä:Sharp/Työaika2014-07-11T07:07:10Z<p>Sharp: /* Kohdistamon kirjaukset */</p>
<hr />
<div><t2b index="Aikalaji,Projekti,Alaprojekti,Havainto" Locations="alku,loppu,toistoväli,asti,kuvaus" unit="d"><br />
Työaika|Opasnet||||||<br />
</t2b><br />
{{puolusta|#: |Laskutettu 29.6.2012 asti|--[[Käyttäjä:Lhiq|Lhiq]] 19. huhtikuuta 2013 kello 12.09 (EEST)}}<br />
<br />
<br />
<br />
== Kohdistamon kirjaukset ==<br />
<br />
<rcode graphics=0 live=1 variables="<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän käyttäjätunnus|type:text|default:Sharp|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus; <br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
#oprint(dat)<br />
#oprint(dat %in% poistot$Kirjausnro)<br />
<br />
pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
pois <- subset(pois, pois > 0)<br />
dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
<br />
#oprint(dat)<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
if (tekijä != "Kaikki") tekijä <- unlist(strsplit(tekijä,",")) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
out <- työ[1:4]<br />
out$Aika <- as.character(out$Aika)<br />
out$Loppu <- as.character(out$Loppu)<br />
oprint(out)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
kirjausajat(alku, loppu, tekijä)<br />
</rcode><br />
<br />
==Katso myös==<br />
<br />
* [[Kohdistamo/Ohje]]<br />
* [[Kohdistamo]]</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Sharp/Ty%C3%B6aika&diff=24882Käyttäjä:Sharp/Työaika2014-07-11T07:03:15Z<p>Sharp: /* Kohdistamon kirjaukset */</p>
<hr />
<div><t2b index="Aikalaji,Projekti,Alaprojekti,Havainto" Locations="alku,loppu,toistoväli,asti,kuvaus" unit="d"><br />
Työaika|Opasnet||||||<br />
</t2b><br />
{{puolusta|#: |Laskutettu 29.6.2012 asti|--[[Käyttäjä:Lhiq|Lhiq]] 19. huhtikuuta 2013 kello 12.09 (EEST)}}<br />
<br />
<br />
<br />
== Kohdistamon kirjaukset ==<br />
<br />
<rcode graphics=0 live=1 variables="<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän tunnus|type:text|default:Sharp|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
#oprint(dat)<br />
#oprint(dat %in% poistot$Kirjausnro)<br />
<br />
pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
pois <- subset(pois, pois > 0)<br />
dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
<br />
#oprint(dat)<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
if (tekijä != "Kaikki") tekijä <- unlist(strsplit(tekijä,",")) else tekijä <- c("Sharp", "Heta", "Pauli", "Jaakko", "Mori", "Julia")<br />
dat <- dat[dat$Henkilö %in% tekijä , ]<br />
<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
out <- työ[1:4]<br />
out$Aika <- as.character(out$Aika)<br />
out$Loppu <- as.character(out$Loppu)<br />
oprint(out)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
kirjausajat(alku, loppu, tekijä)<br />
</rcode><br />
<br />
==Katso myös==<br />
<br />
* [[Kohdistamo/Ohje]]<br />
* [[Kohdistamo]]</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Sharp/Ty%C3%B6aika&diff=24881Käyttäjä:Sharp/Työaika2014-07-10T08:55:54Z<p>Sharp: /* Kohdistamon kirjaukset */</p>
<hr />
<div><t2b index="Aikalaji,Projekti,Alaprojekti,Havainto" Locations="alku,loppu,toistoväli,asti,kuvaus" unit="d"><br />
Työaika|Opasnet||||||<br />
</t2b><br />
{{puolusta|#: |Laskutettu 29.6.2012 asti|--[[Käyttäjä:Lhiq|Lhiq]] 19. huhtikuuta 2013 kello 12.09 (EEST)}}<br />
<br />
<br />
<br />
== Kohdistamon kirjaukset ==<br />
<br />
<rcode graphics=0 live=1 variables="<br />
name:alku|description:Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|description:Seurantajakson loppu|type:date|<br />
name:tekijä|description:Työntekijän tunnus|type:text|default:Sharp|<br />
name:projekti|description:Projekti|type:selection|options:<br />
'Kaikki';Kaikki;<br />
'STM raportointi ja laskutus';STM raportointi ja laskutus;<br />
'EU raportointi ja laskutus';EU raportointi ja laskutus;<br />
'TEKES raportointi ja laskutus';TEKES raportointi ja laskutus;<br />
'SA raportointi ja laskutus';SA raportointi ja laskutus;<br />
'ESR/EAKR raportointi ja laskutus';ESR/EAKR raportointi ja laskutus;<br />
'MUUT raportointi ja laskutus';MUUT raportointi ja laskutus;<br />
'Budjettirahoitus';Budjettirahoitus;<br />
'Tilintarkastus';Tilintarkastus;<br />
'Yleinen projektinhallinta ja neuvonta';Yleinen projektinhallinta ja neuvonta;<br />
'Kehittäminen';Kehittäminen;<br />
'Koulutus';Koulutus;<br />
'Sisäiset palaverit';Sisäiset palaverit;<br />
'Vuosibudjetointi';Vuosibudjetointi;<br />
'Tilinpäätös';Tilinpäätös;<br />
'Pneumokokkirokote';Pneumokokkirokote;<br />
'LVM-tulevaisuuskatsaus';LVM-tulevaisuuskatsaus;<br />
'Oletus';Oletus;<br />
'Muu';Muu<br />
|default:'Kaikki'<br />
"><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
#oprint(dat)<br />
#oprint(dat %in% poistot$Kirjausnro)<br />
<br />
pois <- as.numeric(as.character(poistot$Kirjausnro)) # Varoitus nousee tästä, kun yritetään muuttaa numericiksi ei-numeerinen.<br />
pois <- subset(pois, pois > 0)<br />
dat <- dat[-pois , colnames(dat) != "Result"] # Tässä kohti voisi käyttää %in%iä, mutta dat[dat %in% poistot$Kirjausnro , ] <br />
# ei ainakaan toiminut. En siis tiedä, miten kutsua dat:in rivinumerosaraketta.<br />
<br />
#oprint(dat)<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
if (tekijä != "Kaikki") dat <- dat[dat$Henkilö == tekijä , ] #TODO: lisää inputiin mahd. useampiin käyttäjiin kerralla<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
if (projekti != "Kaikki") työ <- työ[työ$Työ == projekti , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
<br />
työ <- työ[<br />
työ$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
työ$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
<br />
out <- työ[1:4]<br />
out$Aika <- as.character(out$Aika)<br />
out$Loppu <- as.character(out$Loppu)<br />
oprint(out)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
kirjausajat(alku, loppu, tekijä)<br />
</rcode><br />
<br />
==Katso myös==<br />
<br />
* [[Kohdistamo/Ohje]]<br />
* [[Kohdistamo]]</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Sharp/Ty%C3%B6aika&diff=24880Käyttäjä:Sharp/Työaika2014-07-10T08:02:23Z<p>Sharp: /* Kohdistamon kirjaukset */</p>
<hr />
<div><t2b index="Aikalaji,Projekti,Alaprojekti,Havainto" Locations="alku,loppu,toistoväli,asti,kuvaus" unit="d"><br />
Työaika|Opasnet||||||<br />
</t2b><br />
{{puolusta|#: |Laskutettu 29.6.2012 asti|--[[Käyttäjä:Lhiq|Lhiq]] 19. huhtikuuta 2013 kello 12.09 (EEST)}}<br />
<br />
<br />
<br />
== Kohdistamon kirjaukset ==<br />
<br />
<rcode graphics=0 live=1 variables='<br />
name:alku|Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|Seurantajakson loppu|type:date|<br />
name:tekijä|Työntekijän tunnus|type:text|default:Sharp<br />
'><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
#oprint(dat)<br />
#oprint(dat %in% poistot$Kirjausnro)<br />
pois <- as.numeric(as.character(poistot$Kirjausnro))<br />
pois <- subset(pois, pois > 0)<br />
dat <- dat[-pois , colnames(dat) != "Result"]<br />
#oprint(dat)<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
if (tekijä != "Kaikki") dat <- dat[dat$Henkilö == tekijä , ]<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
<br />
<br />
if (length(työ$Työ) > length(ulos$Työ)) {työ <- työ[-((nrow(ulos)+1):nrow(työ)), ] <br />
työ$Loppu <- ulos$Aika<br />
} else työ$Loppu <- ulos$Aika<br />
<br />
työ <- rbind(työ, molemmat)<br />
<br />
#if (projekti != NULL) dat <- dat[<br />
#if (tekijä != NULL)dat <- dat[dat$Henkilö == tekijä , ]<br />
<br />
työ$Aika <- as.POSIXct(työ$Aika, tz = 'Europe/Helsinki')<br />
työ$Loppu <- as.POSIXct(työ$Loppu, tz = 'Europe/Helsinki')<br />
työaika <- (sum(as.numeric(työ$Loppu))-sum(as.numeric(työ$Aika)))<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
# dat <- dat[<br />
# dat$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
# dat$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
# ]<br />
out <- työ[1:4]<br />
out$Aika <- as.character(out$Aika)<br />
out$Loppu <- as.character(out$Loppu)<br />
oprint(out)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
kirjausajat(alku, loppu, tekijä)<br />
</rcode><br />
<br />
==Katso myös==<br />
<br />
* [[Kohdistamo/Ohje]]<br />
* [[Kohdistamo]]</div>Sharphttp://fi.opasnet.org/fi-opwiki/index.php?title=K%C3%A4ytt%C3%A4j%C3%A4:Sharp/Ty%C3%B6aika&diff=24879Käyttäjä:Sharp/Työaika2014-07-10T07:40:41Z<p>Sharp: /* Kohdistamon kirjaukset */</p>
<hr />
<div><t2b index="Aikalaji,Projekti,Alaprojekti,Havainto" Locations="alku,loppu,toistoväli,asti,kuvaus" unit="d"><br />
Työaika|Opasnet||||||<br />
</t2b><br />
{{puolusta|#: |Laskutettu 29.6.2012 asti|--[[Käyttäjä:Lhiq|Lhiq]] 19. huhtikuuta 2013 kello 12.09 (EEST)}}<br />
<br />
<br />
<br />
== Kohdistamon kirjaukset ==<br />
<br />
<rcode graphics=0 live=1 variables='<br />
name:alku|Seurantajakson alku|type:date|default:2014-02-06|<br />
name:loppu|Seurantajakson loppu|type:date|<br />
name:tekijä|Työntekijän tunnus|type:text|default:Sharp<br />
'><br />
library(OpasnetUtils)<br />
library(ggplot2)<br />
objects.latest("Op_en6007", code_name = "answer") # We need timing<br />
<br />
kirjausajat <- function(alku, loppu, tekijä){<br />
dat <- opbase.data("Op_fi3948", subset = 'Kirjaukset')<br />
poistot <- opbase.data("Op_fi3948", subset = 'Kirjauspoistot')<br />
#oprint(dat)<br />
#oprint(dat %in% poistot$Kirjausnro)<br />
pois <- as.numeric(as.character(poistot$Kirjausnro))<br />
pois <- subset(pois, pois > 0)<br />
dat <- dat[-pois , colnames(dat) != "Result"]<br />
#oprint(dat)<br />
<br />
<br />
<br />
#tuntikirjaus <- opbase.data("Op_fi3950.tuntikirjaus")<br />
#työtehtävät <- opbase.data("Op_fi3950.tyotehtavat")<br />
#työsuunnitelma <- opbase.data("Op_fi3950.tyosuunnitelma")<br />
#tuntikirjaus <- tuntikirjaus[colnames(tuntikirjaus) != "Obs"]<br />
#työtehtävät <- työtehtävät[colnames(työtehtävät) != "Obs"]<br />
#työsuunnitelma <- työsuunnitelma[colnames(työsuunnitelma) != "Obs"]<br />
#colnames(työsuunnitelma)[colnames(työsuunnitelma) == "Result"] <- "Loppu"<br />
#työsuunnitelma <- data.frame(työsuunnitelma, Henkilö = "Jouni")<br />
<br />
if (tekijä != "Kaikki") dat <- dat[dat$Henkilö == tekijä , ]<br />
<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
työ <- dat[dat$Loppu == "NA" , ]<br />
#oprint(työ)<br />
ulos <- työ[työ$Työ == "Ulos" , ]<br />
#oprint(ulos)<br />
työ <- työ[työ$Työ != "Ulos" , ]<br />
#oprint(työ)<br />
<br />
<br />
if (length(työ$Työ) == length(ulos$Työ)) työ$Loppu <- ulos$Työ else{<br />
työ <- työ[-nrow(työ), ] <br />
työ$Loppu <- ulos$Aika<br />
}<br />
työ <- rbind(työ, molemmat)<br />
oprint(työ)<br />
#oprint(molemmat)<br />
<br />
#if (projekti != NULL) dat <- dat[<br />
#if (tekijä != NULL)dat <- dat[dat$Henkilö == tekijä , ]<br />
<br />
dat$Aika <- as.POSIXct(dat$Aika, tz = 'Europe/Helsinki')<br />
<br />
työ <- dat[dat$Työ != "Ulos" , ]<br />
työ <- as.numeric(työ$Aika)<br />
molemmat <- dat[dat$Loppu != "NA" , ]<br />
molemmat$Loppu <- as.POSIXct(molemmat$Loppu, tz = 'Europe/Helsinki')<br />
ulos <- dat[dat$Työ == "Ulos" , ]<br />
ulos <- c(as.numeric(ulos$Aika), as.numeric(molemmat$Loppu))<br />
if( length(työ) > length(ulos)){<br />
työaika <- (sum(ulos)-sum(työ)+tail(työ, n=1))<br />
} else {<br />
työaika <- (sum(ulos)-sum(työ))<br />
}<br />
<br />
työaika <- (round(työaika/3600, digits = 2))<br />
<br />
cat("Valitulla välillä tehty työaika on yhteensä ", työaika, " tuntia. \n")<br />
<br />
dat <- dat[<br />
dat$Aika >= as.POSIXct(alku, tz = 'Europe/Helsinki') &<br />
dat$Aika <= as.POSIXct(loppu, tz = 'Europe/Helsinki') +3600*24 ,<br />
]<br />
out <- dat[1:4]<br />
out$Aika <- as.character(out$Aika)<br />
oprint(out)<br />
#oprint(työsuunnitelma)<br />
#oprint(työtehtävät)<br />
<br />
#out <- poistot<br />
#oprint(out)<br />
<br />
<br />
#tuntikirjaus <- timing(tuntikirjaus, timecol = c("Aika", "Loppu"), weeks = 6)<br />
#timeline <- makeTimeline(tuntikirjaus)<br />
#timeline <- timeline[order(timeline$Time) , ]<br />
#timeline$Time[nrow(timeline)] <- max(timeline$Time, na.rm = TRUE)<br />
<br />
#for(i in 1:(nrow(timeline)-1)) {timeline$end[i] <- timeline$Time[i+1]}<br />
#timeline[nrow(timeline), "end"] <- NA<br />
#timeline$end <- as.POSIXct(timeline$end, origin = "1970-01-01")<br />
<br />
#ggplot(timeline, aes(<br />
# xmin = Time, # as.Date(as.character(Start))<br />
# xmax = end, # as.Date(as.character(End)) + 2<br />
# ymin = as.numeric(Henkilö),<br />
# ymax = as.numeric(Henkilö) + 1,<br />
# fill = Työ)) + geom_rect()<br />
# <br />
}<br />
<br />
kirjausajat(alku, loppu, tekijä)<br />
</rcode><br />
<br />
==Katso myös==<br />
<br />
* [[Kohdistamo/Ohje]]<br />
* [[Kohdistamo]]</div>Sharp