2009/5/11 Orvalho Joaquim Augusto <orvaq...@gmail.com>: > Thank for this helpfull ofert. > > I talk within your words. > > Bob Jolliffe wrote: >> >> Hi Orvalho >> >> 2009/5/11 Orvalho Joaquim Augusto <orvaq...@gmail.com>: >>> >>> Well this comment is interesting. >>> >>> And the question raises from my needs here. I am moving data from a not >>> dhis2 system to dhis2. And we must do it weekly because dhis2 is not yet >>> adopted. >>> >>> I noticed that I had weeks changed on dhis2. >> >> Do you have some examples? i.e. ones which show that week 1 is >> indicated as something specific for a particular year which is >> different to the DHIS2 way. Then maybe we can start thinking about >> how DHIS2 should best handle. Is your data coming from Excel? >> > > It is not Excel. > > Some physiology of what we have: > The System being used now is called Modulo Basico (modbas for now on). That > system is in MsAccess. It stores data for each form in one table. The table > contains for record identification these fields (all in strings): year (YR), > week (MTH, it is no mistake), district code (DC), province code (PC) and > health center (HC). > > The data comens on diferent columns identified by A1, A2 up to An (depending > on the form). > > As this is what Ministry of Health uses and dhis2 is being prepared to be > used in large scale we feed dhis2 using some rudimentar steps: > 1. There is a scheduled program per day to convert the tables in MDB > in modbas to mysql (db2sync instead of mysql migration tool because db2syn > exports well the keys) > 2. Under the mysql server machine there is a python script that take data > feeds dhis2 tables. > > Step 2 uses periodid generated by dhis2 using the ranges. > > For the months this is fine. But for weeks we need to know which week is > based on the ranges given by periodid. > > Is this clear enough? > > And do you need really data to check?
No I don't need lots of data. Just something like year 2005 (weeks are ok), 2006 (dhis is one week ahead), 2007 (weeks are ok) .... I am just trying to figure out the problem and what weeknumber system your system (and DHIS2) is using. Empirically like this is the easiest. Cheers Bob >> Regards >> Bob >> >> PS. I see mysql makes use of a mode argument >> >> http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_week >> I guess ISO8601 mode would be mode 3 under this scheme. > > Thanks. > > But on dhis2 it seems different isn't that? > > Regards > Caveman > > >> PPS. Excel does not have a weeknum function built in. There is an >> analysis toolpack plugin which implements something non-standard - >> somteimes described as the US norm - the first week (like other weeks) >> ends on Sunday. It can be any number of days long from 1 to 7. >> >> PPPS. David Wheeler has done some excellent work on the OpenFormula >> SubCommittee of the ODF OASIS TC on figuring out the differences >> between all these. It looks like ODF will eventually adopt two >> functions WEEKNUM (which implements the incorrect Excel algorithm) and >> ISO_WEEKNUM which implements the correct algorithm. >> >> >> >>> And now to adjust to dhis2 I need to know how dhis2 does. And Bob raises >>> this. What I do? I use the algorithm from that java Class? >>> >>> Caveman >>> >>> Bob Jolliffe wrote: >>>> >>>> Hi >>>> >>>> 2009/5/11 Murodullo Latifov <murodlati...@yahoo.com>: >>>>> >>>>> Hi Caveman, >>>>> >>>>> >>>>> >>>>> ----- Original Message ---- >>>>> From: Orvalho Joaquim Augusto <orvaq...@gmail.com> >>>>> To: dhis2-devs <dhis2-devs@lists.launchpad.net> >>>>> Sent: Monday, May 11, 2009 2:57:42 AM >>>>> Subject: [Dhis2-devs] weeks calculation >>>>> >>>>> I could not find on dhis2 docs so I am asking: >>>>> >>>>> How dhis2 calculate the weeks? The first week of a year for example. >>>>> >>>>> Weekly periods are calculated based on their start date. If start date >>>>> of >>>>> the given week is on the previous year, end date of that period is >>>>> used. >>>>> Also >>>>> Saturday is used as first day of the week. >>>> >>>> The code is here: >>>> ./dhis-api/src/main/java/org/hisp/dhis/period/WeeklyPeriodType.java >>>> >>>> I find it a bit confusing. It seems that we try to define a week as >>>> Saturday to Friday, and then say that as long as the endDate is in a >>>> different year to the startDate then we are in week 1. So week 1 is >>>> the first week in the year with a Friday in it? This doesn't sound >>>> right. Also according to documentation on top of class, a weekly >>>> period must have a startDate on a Monday and endDate on a Sunday. >>>> >>>> But week numbers according to ISO8601 are equivalent to the number of >>>> Thursdays - ie. first week in the year with a Thursday is week 1. >>>> This is the way that, for example the javascript in the calendar.js >>>> would calculate it. And presumably any sql week function we might >>>> use. Also weeks would start on Monday (which agrees with our class >>>> documentation). >>>> >>>> So for the week of 29/12/2008 to 04/01/2009, by our calculation that >>>> would be week 1 of 2009. And it would be week 1 by ISO 8601. >>>> >>>> But for the week of 28/12/2009 to 3/01/2010 which is coming up, our >>>> calculation would have this as week 1 of 2010, whereas ISO8601 would >>>> have it as week 52 or 53 of 2010. Week 1 would be the week of >>>> 04/01/2010. >>>> >>>> As I say - its a bit confusing. >>>> >>>> Though perhaps in the end the actual week number doesn't matter. What >>>> might matter most is the convention we consistently adopt and >>>> document. Though it would be nice if our conception of week 1 >>>> coincided with the ISO8601 conception. But not so nice as to break >>>> all the annual reports ... Do we ever exchange a week number with >>>> another system? Do we need to be able to define this more flexibly to >>>> accomodate different national reporting requirements which might >>>> interpret the first week of the year differently? I haven't even >>>> begun to think of this in terms of localised calendar systems :-) >>>> >>>> Regards >>>> Bob >>>> >>>>> Thank you >>>>> Caveman >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> Mailing list: https://launchpad.net/~dhis2-devs >>>>> Post to : dhis2-devs@lists.launchpad.net >>>>> Unsubscribe : https://launchpad.net/~dhis2-devs >>>>> More help : https://help.launchpad.net/ListHelp >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> _______________________________________________ >>>>> Mailing list: https://launchpad.net/~dhis2-devs >>>>> Post to : dhis2-devs@lists.launchpad.net >>>>> Unsubscribe : https://launchpad.net/~dhis2-devs >>>>> More help : https://help.launchpad.net/ListHelp >>>>> >>> >> > > _______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : dhis2-devs@lists.launchpad.net Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp