Heat map visualization of sick day trends in Finland with R, ggplot2 and Google Correlate

Inspired by Margintale’s post “ggplot2 Time Series Heatmaps” and Google Flu Trends I decided to use a heat map to visualize sick days logged by HeiaHeia.com Finnish users.

I got the data from our database, filtering results by country (Finnish users only) in a tab separated form with the first line as the header. Three columns contained date, count of sick days logged on that date and count of Finnish users in the service on that date.

date count(*) user_cnt
2011-01-01 123 12345
2011-01-02 456 67890
...

Below is R source code for plotting the heat map. I made some small changes to the original code:

  • data normalization (line 9): this is specific to the data used in this example
  • days of the week have to be 1..7, not 0..6 as returned by $wday (line 19): dat$weekday = as.numeric(format(as.POSIXlt(dat$date),”%u”))
  • date format (line 31): week of year calculation required date conversion to POSIX dat$week <- as.numeric(format(as.POSIXlt(dat$date),”%W”))
  • custom header for the legend (line 39): adding + labs(fill=”per user per day”) allows you to customize legend header
require(zoo)
require(ggplot2)
require(plyr)

dat<-read.csv("~/data/sick_days_per_day.txt",header=TRUE,sep="\t")</pre>
colnames(dat) <- c("date", "count", "user_cnt")

# normalize data by number of users on each date
dat$norm_count <- dat$count / dat$user_cnt

# facet by year ~ month, and each subgraph will show week-of-month versus weekday the year is simple
dat$year<-as.numeric(as.POSIXlt(dat$date)$year+1900)
dat$month<-as.numeric(as.POSIXlt(dat$date)$mon+1)

# turn months into ordered facors to control the appearance/ordering in the presentation
dat$monthf<-factor(dat$month,levels=as.character(1:12),labels=c("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"),ordered=TRUE)

# the day of week is again easily found
dat$weekday = as.numeric(format(as.POSIXlt(dat$date),"%u"))

# again turn into factors to control appearance/abbreviation and ordering
# I use the reverse function rev here to order the week top down in the graph
# you can cut it out to reverse week order
dat$weekdayf<-factor(dat$weekday,levels=rev(1:7),labels=rev(c("Mon","Tue","Wed","Thu","Fri","Sat","Sun")),ordered=TRUE)

# the monthweek part is a bit trickier - first a factor which cuts the data into month chunks
dat$yearmonth<-as.yearmon(dat$date)
dat$yearmonthf<-factor(dat$yearmonth)

# then find the "week of year" for each day
dat$week <- as.numeric(format(as.POSIXlt(dat$date),"%W"))

# and now for each monthblock we normalize the week to start at 1
dat<-ddply(dat,.(yearmonthf),transform,monthweek=1+week-min(week))

# Now for the plot
P<- ggplot(dat, aes(monthweek, weekdayf, fill = dat$norm_count)) +
 geom_tile(colour = "white") + facet_grid(year~monthf) + scale_fill_gradient(low="green", high="red") +
 opts(title = "Time-Series Calendar Heatmap - HeiaHeia.com sick days logged") + xlab("Week of Month") + ylab("") + labs(fill="per user per day")
P

Here are the results. Green indicates the healthiest days with lowest values of sick days logged per user, red indicates the worst days with highest values of sick days logged per user. It’s quite clear that there are seasonal peaks around February, and 2011 was a lot worse than 2012 (one should note that January-February of 2011 were exceptionally cold in Finland). It matches quite well with the coverage in the national press: Flu season reaching peak (Feb’2012), Employers grapple with sick leaves brought by flu wave (Feb’2012).

It’s interesting that there are less sick days logged on the weekends than on the work days, and traditional holiday month of July is the healthiest month of all.


(click to see full-sized image)

To get a more formal validation of the data logged by HeiaHeia users, I used Google Correlate lab tool to check that heat map results make sense. I uploaded sick days per user weekly time series and plotted a correlation with Google search queries for “kuumeen hoito” (treatment of fever in Finnish).


(click to see full-sized image)

Pearson Correlation Coefficient r between HeiaHeia sick days time series and Google search activity σ (both normalized so that mean is 0 and standard deviation is 1) is 0.8257 – this is a pretty good match.


Comments

265 responses to “Heat map visualization of sick day trends in Finland with R, ggplot2 and Google Correlate”

  1. I like wht yyou guys are up too. This type of clever work andd reporting!
    Keeep upp the fantastic works guys I’ve included you guyys to our blogroll.

  2. Genrally I don’t learn artice on blogs, butt I wuld like
    too say thawt thiis write-up very pressured mme tto tazke a look aat and do it!
    Yourr writing style hhas bewen amazed me. Thank you, quite great post.

  3. It is in pooint of fact a nice annd useful piece off information. I’m satisffied thqt
    you just sgared this useful info with us. Plase keeep us informed like this.
    Thhanks forr sharing.

  4. Fanastic goods fom you, man. I’ve take into acccount our stuff
    previous too and you’re jut extremey great. I really like whqt you
    hazve obtaimed here, crrtainly like wha yoou are stating aand
    the besst way duuring which yyou asser it. You make it entertaining
    andd yoou continue too take carte of to kedp it smart.
    I can’t waitt too read faar moe from you. Thiss iis really
    a tremmendous website.

  5. Hi juhst wanted too give you a quicfk heads up and let yoou know a
    feww off thee images aren’t loading correctly. I’m not sure whyy bbut I
    thinkk its a linkibg issue.I’ve tied itt inn two different inrernet browsers andd bpth show the same results.

  6. Tere iis definately a lot too fnd outt about thiis subject.
    I love alll of tthe oints yoou have made.

  7. Hi, I think yur blpg might bee having browser compatibility issues.
    Whhen I look at yojr blog in Ie, itt loos fie but wen opening
    iin Internet Explorer, it hass some overlapping. I just wante to give youu a uick heads up!
    Other then that, terrific blog!

  8. Hello! I know ths is kinda off tooic but I waas wondering if you knew where
    I ccould locae a captcha plugin foor myy comment form? I’m using tthe sme blog plaatform as yours and I’m havin difficulty findimg one?
    Thanks a lot!

  9. That is very attention-grabbing, You’re aan overly professional blogger.
    I’ve joikned your rss feed and look forward to inn search
    off exta of our fantastic post. Additionally, I havve shwred
    your wweb site iin my socia networks

  10. Veryy noce post. I just stumbled upon our
    log and wanred too mentgion thhat I’ve truly enjoyed browsing
    your bllg posts. In any case I’ll bbe sybscribing iin your feed and I
    am hoping yyou writge once mode soon!

  11. Yes! Finally something about 74067.

  12. mit forex edu Can anyone recommend good books on trading psychology? I think that’s my weakest area now.

  13. Howdy! Quick questioln that’s totaly off topic. Do yoou
    know hoow tto make yoour skte mobile friendly?

    My wensite llooks weird whjen browsing rom myy iphonee 4.
    I’m trying too find a theme or plkugin that mioght be able to resolve this issue.

    If yyou have anny suggestions, please share. With thanks!

  14. Hello, i think that i saw you visited my site thus i cqme tto goo baqck the desire?.I aam attempting tto find things tto improve myy site!I suppose its adequate to usse some of your ideas!!

  15. PatrickroN
  16. Billyhem

    Predni Pharm: buy 40 mg prednisone – PredniPharm

  17. PatrickroN

    http://semaglupharm.com/# Rybelsus for blood sugar control

  18. Alfonsodomia

    30mg prednisone: prednisone 20mg cheap – prednisone 50 mg prices

  19. Albertoroale

    Atorvastatin online pharmacy Lipi Pharm LipiPharm

  20. Billyhem

    LipiPharm: LipiPharm – Generic Lipitor fast delivery

  21. PatrickroN
  22. Jamesvew

    https://semaglupharm.shop/# does tricare cover semaglutide

  23. Alfonsodomia

    Crestor Pharm: Crestor Pharm – Crestor Pharm

  24. Albertoroale

    Crestor home delivery USA Crestor mail order USA Crestor Pharm

  25. Billyhem

    Crestor Pharm: Best price for Crestor online USA – rosuvastatin over the counter

  26. PatrickroN

    https://semaglupharm.shop/# diabetes rybelsus

  27. Alfonsodomia

    SemagluPharm: Where to buy Semaglutide legally – Semaglu Pharm

  28. Albertoroale

    Predni Pharm Predni Pharm over the counter prednisone cheap

  29. Billyhem

    Predni Pharm: Predni Pharm – Predni Pharm

  30. PatrickroN
  31. Jamesvew

    https://semaglupharm.shop/# Safe delivery in the US

  32. Alfonsodomia

    rybelsus нљЁлЉҐ: Semaglu Pharm – peptide semaglutide

  33. Albertoroale

    LipiPharm LipiPharm LipiPharm

  34. Billyhem

    PredniPharm: Predni Pharm – prednisone tablets

  35. PatrickroN

    http://semaglupharm.com/# semaglutide lozenges

  36. Alfonsodomia

    SemagluPharm: Safe delivery in the US – where to buy semaglutide

  37. Albertoroale

    п»їBuy Lipitor without prescription USA Lipi Pharm Discreet shipping for Lipitor

  38. Billyhem

    Lipi Pharm: No RX Lipitor online – LipiPharm

  39. PatrickroN

    https://semaglupharm.com/# semaglutide cancer

  40. Alfonsodomia

    LipiPharm: does atorvastatin cause erectile dysfunction – No RX Lipitor online

  41. Jamesvew
  42. Albertoroale

    LipiPharm LipiPharm Lipi Pharm

  43. PatrickroN

    http://semaglupharm.com/# does semaglutide have to be refrigerated

  44. Billyhem

    Online statin drugs no doctor visit: LipiPharm – п»їBuy Lipitor without prescription USA

  45. Alfonsodomia

    SemagluPharm: 10mg semaglutide dosage chart – Semaglu Pharm

  46. Albertoroale

    п»їBuy Rybelsus online USA SemagluPharm SemagluPharm

  47. PatrickroN
  48. Billyhem

    rybelsus natural alternatives: Semaglu Pharm – Order Rybelsus discreetly

  49. Alfonsodomia

    Online statin drugs no doctor visit: Lipi Pharm – lipitor information

  50. Albertoroale

    LipiPharm LipiPharm atorvastatin calcium 40 mg used for

  51. PatrickroN

    https://semaglupharm.com/# how much rybelsus for weight loss

  52. Billyhem

    average cost of prednisone 20 mg: prednisone 5mg cost – Predni Pharm

  53. Alfonsodomia

    lipitor a statin: atorvastatin price canada – LipiPharm

  54. PatrickroN
  55. Albertoroale

    Lipi Pharm LipiPharm п»їBuy Lipitor without prescription USA

  56. Alfonsodomia

    LipiPharm: LipiPharm – Order cholesterol medication online

  57. PatrickroN

    https://semaglupharm.com/# buy compounded semaglutide online

  58. Albertoroale

    CrestorPharm crestor vs lipitor hair loss CrestorPharm

  59. Billyhem

    Discreet shipping for Lipitor: LipiPharm – Safe atorvastatin purchase without RX

  60. Jamesvew

    https://crestorpharm.shop/# Crestor mail order USA

  61. Alfonsodomia

    Generic Lipitor fast delivery: lipitor high – LipiPharm

  62. PatrickroN

    https://semaglupharm.com/# how to combat semaglutide fatigue

  63. Albertoroale

    PredniPharm PredniPharm buy prednisone online without a script

  64. PatrickroN
  65. Alfonsodomia

    prednisone 60 mg tablet: prednisone 4mg – PredniPharm

  66. Albertoroale

    prednisone 30 buy prednisone canada Predni Pharm

  67. RobertSem

    my canadian pharmacy: canadian pharmacy online store – canadian pharmacy

  68. Robertcoorp

    https://canadapharmglobal.shop/# escrow pharmacy canada

  69. Jamesheags

    https://medsfrommexico.com/# mexican rx online

  70. MichelCip

    Meds From Mexico: mexican mail order pharmacies – п»їbest mexican online pharmacies

  71. SamuelLab

    mexico pharmacies prescription drugs medication from mexico pharmacy Meds From Mexico

  72. RobertSem

    canadian pharmacy no rx needed: Canada Pharm Global – canadian pharmacy tampa

  73. Robertcoorp

    http://indiapharmglobal.com/# India Pharm Global

  74. MichelCip

    India Pharm Global: India Pharm Global – pharmacy website india

  75. SamuelLab

    canadian pharmacy 24 com reputable canadian online pharmacy buy drugs from canada

  76. Jamesheags

    https://medsfrommexico.shop/# buying prescription drugs in mexico online

  77. Robertcoorp

    http://indiapharmglobal.com/# India Pharm Global

  78. RobertSem

    buying from canadian pharmacies: canadian pharmacy cheap – canadian pharmacy store

  79. MichelCip

    canadian drug prices: Canada Pharm Global – reliable canadian pharmacy

  80. SamuelLab

    India Pharm Global reputable indian online pharmacy India Pharm Global

  81. Robertcoorp

    https://canadapharmglobal.shop/# canada pharmacy online

  82. RobertSem

    Meds From Mexico: purple pharmacy mexico price list – buying from online mexican pharmacy

  83. MichelCip

    Meds From Mexico: Meds From Mexico – Meds From Mexico

  84. Jamesheags

    https://canadapharmglobal.shop/# pharmacy rx world canada

  85. Robertcoorp

    https://canadapharmglobal.com/# canadian pharmacy meds

  86. SamuelLab

    top 10 pharmacies in india indian pharmacy India Pharm Global

  87. MichelCip

    my canadian pharmacy rx: canada rx pharmacy – best canadian online pharmacy

  88. RobertSem

    cheapest pharmacy canada: Canada Pharm Global – online canadian drugstore

  89. Robertcoorp
  90. SamuelLab

    medication from mexico pharmacy Meds From Mexico Meds From Mexico

  91. MichelCip

    top 10 pharmacies in india: world pharmacy india – India Pharm Global

  92. RobertSem

    best online pharmacies in mexico: buying prescription drugs in mexico online – Meds From Mexico

  93. Robertcoorp

    https://canadapharmglobal.shop/# canada cloud pharmacy

  94. Jamesheags

    https://indiapharmglobal.shop/# india pharmacy mail order

  95. SamuelLab

    canadian drug pharmacy reputable canadian online pharmacies buying drugs from canada

  96. MichelCip

    India Pharm Global: India Pharm Global – online shopping pharmacy india

  97. RobertSem

    canadian pharmacy in canada: Canada Pharm Global – the canadian pharmacy

  98. Robertcoorp

    http://canadapharmglobal.com/# is canadian pharmacy legit

  99. SamuelLab

    canadadrugpharmacy com canadian pharmacy online ship to usa ed meds online canada

  100. MichelCip

    canadian online pharmacy reviews: Canada Pharm Global – my canadian pharmacy review

  101. RobertSem

    mexican mail order pharmacies: Meds From Mexico – Meds From Mexico

  102. Robertcoorp
  103. Jamesheags

    http://medsfrommexico.com/# reputable mexican pharmacies online

  104. SamuelLab

    buying drugs from canada vipps approved canadian online pharmacy canadian pharmacy

  105. MichelCip

    indianpharmacy com: India Pharm Global – India Pharm Global

  106. Robertcoorp

    http://medsfrommexico.com/# buying prescription drugs in mexico

  107. RobertSem

    India Pharm Global: India Pharm Global – top 10 pharmacies in india

  108. JosephWheds

    Svenska Pharma Svenska Pharma Svenska Pharma

  109. WilliamNet

    ekologiska blГ¶jor: Svenska Pharma – Svenska Pharma

  110. HenryInero
  111. ClintonMob

    EFarmaciaIt: EFarmaciaIt – cialis a cosa serve

  112. RobertToold
  113. JosephWheds

    misoprostol precio en farmacia espaГ±a farmacia en portugal farmacia francesa online

  114. WilliamNet

    Svenska Pharma: Svenska Pharma – hГҐrklippare rea

  115. HenryInero
  116. ClintonMob

    augmentin sciroppo prezzo: vermox adulti prezzo – trental fiale

  117. JosephWheds

    Rask Apotek clotrimazole apotek Rask Apotek

  118. WilliamNet

    apotek ГҐpningstid: Rask Apotek – medisin pГҐ nett

  119. HenryInero

    http://svenskapharma.com/# urinvägsinfektion test apotek

  120. RobertToold
  121. ClintonMob

    pillola novadien prezzo: EFarmaciaIt – farmacia on.line

  122. WilliamNet

    Papa Farma: precio epiduo gel espaГ±a – diprogenta generico

  123. JosephWheds

    EFarmaciaIt herbalife offerte EFarmaciaIt

  124. HenryInero
  125. WilliamNet

    Papa Farma: tadalafilo 20 mg precio en espaГ±a – todo farmacia

  126. HenryInero

    http://efarmaciait.com/# vessel 250 a cosa serve

  127. JosephWheds

    Papa Farma Papa Farma comprar ozempic 1 mg online

  128. RobertToold

    https://raskapotek.com/# te tre olje apotek

  129. ClintonMob

    Papa Farma: pastillas vichy – Papa Farma

  130. WilliamNet

    movicol en sobres: Papa Farma – Papa Farma

  131. HenryInero
  132. JosephWheds

    Svenska Pharma apoteksvaror destillerat vatten kГ¶pa apotek

  133. ClintonMob

    EFarmaciaIt: recare significato – cilodex bambini

  134. HenryInero
  135. WilliamNet

    apotek snabb leverans: ringorm apotek – olika apotek pГҐ nГ¤tet

  136. JosephWheds

    Papa Farma que es una parafarmacia web direct

  137. RobertToold

    https://raskapotek.com/# influensavaksine apotek pris

  138. HenryInero

    https://efarmaciait.shop/# expose medicinale

  139. ClintonMob

    Rask Apotek: krem til tatovering apotek – Rask Apotek

  140. WilliamNet

    Svenska Pharma: apotek handkrГ¤m – Svenska Pharma

  141. JosephWheds

    EFarmaciaIt app per riconoscere insetti gratis zeta uno spray come si usa

  142. HenryInero
  143. ClintonMob

    EFarmaciaIt: amazon voltaren emulgel 2 – EFarmaciaIt

  144. JosephWheds

    Rask Apotek kalium apotek Rask Apotek

  145. RobertToold

    https://papafarma.shop/# celestone inyectable

  146. HenryInero
  147. ClintonMob

    Rask Apotek: apoteket – Rask Apotek

  148. WilliamNet

    ryaltris costo: EFarmaciaIt – EFarmaciaIt

  149. JosephWheds

    Papa Farma farmacia direct opiniones Papa Farma

  150. HenryInero
  151. WilliamNet

    Svenska Pharma: Svenska Pharma – proteinpulver ГҐldersgrГ¤ns

  152. ClintonMob

    kГ¶pa hund billigt: Svenska Pharma – Svenska Pharma

  153. JosephWheds
  154. HenryInero
  155. RobertToold

    http://papafarma.com/# farmacia gibraltar envГ­os espaГ±a

  156. WilliamNet

    Rask Apotek: apotek julegaver – Rask Apotek

  157. JosephWheds

    Papa Farma Papa Farma Papa Farma

  158. HenryInero

    https://papafarma.shop/# farmacias mas baratas

  159. ClintonMob

    Svenska Pharma: blodtryck apotek – Svenska Pharma

  160. WilliamHar

    shampoing kГ©toconazole sans ordonnance pharmacie en ligne franГ§aise shampoing charbon garnier avis

  161. Chrisgox
  162. AlbertSkelf

    Medicijn Punt: MedicijnPunt – apotheek online bestellen

  163. Edwardsault
  164. MelvinBlimb

    Pharma Confiance: lactulose biogaran sans ordonnance – Pharma Confiance

  165. WilliamHar

    medicijnen bestellen zonder recept apotheek spanje online medicatie apotheker review

  166. AlbertSkelf

    medikamente per click: Pharma Jetzt – medikamente.de

  167. Edwardsault
  168. MelvinBlimb

    australia pharmacy viagra: lisinopril online pharmacy – PharmaConnectUSA

  169. Chrisgox
  170. WilliamHar

    MedicijnPunt Medicijn Punt Medicijn Punt

  171. MelvinBlimb

    men’s health pharmacy viagra: Pharma Connect USA – PharmaConnectUSA

  172. AlbertSkelf

    PharmaConnectUSA: PharmaConnectUSA – gastro health

  173. WilliamHar

    MedicijnPunt MedicijnPunt Medicijn Punt

  174. Edwardsault
  175. AlbertSkelf

    vea spray huile seche: light gg fr – pharmacie du cours grasse

  176. Chrisgox
  177. WilliamHar

    sofort lieferung apotheke germany apotheke PharmaJetzt

  178. Edwardsault
  179. MelvinBlimb

    is reliable rx pharmacy legit: certified pharmacy online viagra – PharmaConnectUSA

  180. AlbertSkelf

    medizin online bestellen: apotek online – PharmaJetzt

  181. Edwardsault

    http://pharmaconnectusa.com/# american pharmacy online

  182. WilliamHar

    niederlande apotheke Medicijn Punt MedicijnPunt

  183. MelvinBlimb

    Pharma Jetzt: Pharma Jetzt – online-apotheken

  184. AlbertSkelf

    apotheek webshop: MedicijnPunt – farmacie medicijn

  185. Chrisgox

    http://pharmaconnectusa.com/# rx software pharmacy

  186. Edwardsault
  187. WilliamHar

    onlineapotheken PharmaJetzt online apotheke schweiz

  188. MelvinBlimb

    billigste online apotheke: Pharma Jetzt – PharmaJetzt

  189. AlbertSkelf

    Pharma Connect USA: Pharma Connect USA – PharmaConnectUSA

  190. Edwardsault
  191. WilliamHar

    PharmaConnectUSA superdrug pharmacy doxycycline pharmacy magazine warfarin

  192. MelvinBlimb

    MedicijnPunt: MedicijnPunt – apotheken nederland

  193. AlbertSkelf

    Pharma Connect USA: Sildigra – online pharmacy birth control pills

  194. Edwardsault
  195. Chrisgox

    http://pharmaconnectusa.com/# lamisil pharmacy uk

  196. MelvinBlimb

    Pharma Confiance: Pharma Confiance – Pharma Confiance

  197. WilliamHar

    Pharma Confiance cialis sans ordonnance pharmacie france laboratoire analyse grasse

  198. AlbertSkelf

    Pharma Confiance: pharmacie ville la grand – Pharma Confiance

  199. Edwardsault

    http://medicijnpunt.com/# apteka internetowa nl

  200. WilliamHar

    Pharma Connect USA texas rx pharmacy levitra online pharmacy no prescription

  201. Edwardsault
  202. AlbertSkelf

    Pharma Confiance: doliprane belgique – pharmacie franc

  203. Chrisgox
  204. MelvinBlimb

    MedicijnPunt: MedicijnPunt – MedicijnPunt

  205. WilliamHar

    pharmacie proche de chez moi monuril mycose acheter une pharmacie

  206. Edwardsault

    http://medicijnpunt.com/# apotheek inloggen

  207. AlbertSkelf

    homГ©opathie bain de bretagne: acheter du viagra sur internet – pharmacie du lague

  208. MelvinBlimb

    acheter saxenda: Pharma Confiance – site la sante.net avis

  209. WilliamHar

    MedicijnPunt Medicijn Punt Medicijn Punt

  210. Edwardsault

    https://pharmaconnectusa.com/# Pharma Connect USA

  211. AlbertSkelf

    MedicijnPunt: MedicijnPunt – mediceinen

  212. MelvinBlimb

    ipill apotheke versandkostenfrei: PharmaJetzt – Pharma Jetzt

  213. WilliamHar

    wat is mijn apotheek MedicijnPunt farmacie medicijn

  214. Edwardsault

    https://pharmaconnectusa.shop/# rohypnol mexico pharmacy

  215. AlbertSkelf

    Pharma Confiance: mГ©decin de garde vichy aujourd’hui – verveine chien

  216. MelvinBlimb

    PharmaConnectUSA: Pharma Connect USA – where to buy viagra pharmacy

  217. WilliamHar

    online apotheke ohne versandkosten Pharma Jetzt onlineapothele

  218. AlbertSkelf

    parmacie en ligne: amoxicilline et ibuprofГЁne – achat viagra espagne pharmacie

  219. MelvinBlimb

    Pharma Connect USA: PharmaConnectUSA – cialis pharmacy

  220. Edwardsault

    https://medicijnpunt.com/# apteka nl online

  221. WilliamHar

    MedicijnPunt medicijnen bestellen bij apotheek mijn apotheek

  222. AlbertSkelf

    MedicijnPunt: MedicijnPunt – Medicijn Punt

  223. MelvinBlimb

    PharmaConnectUSA: cialis online american pharmacy – PharmaConnectUSA

  224. Edwardsault

    https://pharmaconnectusa.shop/# grocery store pharmacy

  225. WilliamHar

    Pharma Confiance parapharmaci Pharma Confiance

  226. AlbertSkelf

    Medicijn Punt: pillen bestellen – online apotheek

  227. MelvinBlimb

    Pharma Jetzt: PharmaJetzt – online apotheke pille danach

  228. Edwardsault
  229. WilliamHar

    PharmaConnectUSA PharmaConnectUSA buy pharmacy

  230. Chrisgox
  231. Edwardsault
  232. AlbertSkelf

    medi apotheke: PharmaJetzt – online medicine

  233. MelvinBlimb

    Pharma Jetzt: PharmaJetzt – PharmaJetzt

  234. WilliamHar

    Medicijn Punt MedicijnPunt Medicijn Punt

  235. Edwardsault

    https://pharmaconfiance.shop/# savon bleu pharmacie

  236. AlbertSkelf

    Pharma Connect USA: mexican pharmacy valtrex – Pharma Connect USA

  237. WilliamHar

    Medicijn Punt Medicijn Punt Medicijn Punt

  238. Edwardsault
  239. Chrisgox

    https://medicijnpunt.com/# apotheek medicijnen bestellen

  240. MelvinBlimb

    medicatie bestellen online: pharmacy nederlands – apotheek apotheek

  241. AlbertSkelf

    Pharma Jetzt: PharmaJetzt – PharmaJetzt

  242. WilliamHar

    apotheker online Medicijn Punt apteka nl

  243. Edwardsault

    https://pharmaconnectusa.shop/# propecia online pharmacy no prescription

  244. MelvinBlimb

    meine shop apotheke: Pharma Jetzt – Pharma Jetzt

  245. AlbertSkelf

    Pharma Jetzt: aporheke – Pharma Jetzt

  246. WilliamHar

    commander ozempic Pharma Confiance meilleure crГЁme corps 60 millions consommateur 2023

  247. Edwardsault
  248. MelvinBlimb

    Pharma Jetzt: bad apotheke online – apotheken internet

  249. Chrisgox

    https://pharmaconnectusa.com/# simvastatin people’s pharmacy

  250. AlbertSkelf

    online pharmacy zovirax cream: us pharmacy cialis online – Pharma Connect USA

  251. WilliamHar

    apotheke obline Pharma Jetzt PharmaJetzt

  252. Edwardsault

    https://pharmaconnectusa.shop/# buy viagra online us pharmacy

  253. MelvinBlimb

    internet apotheke versandkostenfrei: shop apotheke versandapotheke – medikamenten preisvergleich

  254. AlbertSkelf

    shop apothrke: Pharma Jetzt – apotheke ohne versandkosten

  255. WilliamHar

    kapsel apotheke pzn apotheke Pharma Jetzt

  256. MelvinBlimb

    shop apotheke auf rechnung: PharmaJetzt – Pharma Jetzt

  257. Edwardsault
  258. Chrisgox

    http://medicijnpunt.com/# recept medicijn

  259. AlbertSkelf

    longs drug store pharmacy: PharmaConnectUSA – Pharma Connect USA

  260. MelvinBlimb

    PharmaJetzt: Pharma Jetzt – PharmaJetzt

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.