If feasible, strategy a) would be my preference as it offers two things:
first it teaches which field name is reserved, second that it cannot be
used. Strategy b) is not user-friendly, and strategy c) is less
transparent than strategy a)
a. Adopt a strategy, where users are warned when creating files where
field names/variables are
given the same names as a restricted word - a warning.
b. Maintain current where users will find out since either an error or
occur or nothing happens when
they create confusion in this way - a "non-friendly" way towards users.
c. A strategy where field names cannot have the same names as functions.
- a restrictive strategy.
--
Hans L Rieder, MD, MPH
Jetzikofenstr. 12
3038 Kirchlindach
Switzerland
Tel: +41 31 829 4577
Mob: +41 79 429 9945
Web: http://www.tbrieder.org
I'm also in favour of strategy a). It's certainly the simplest to implement.
Gilles
-----Message d'origine-----
De : epidata-list(a)lists.umanitoba.ca [mailto:epidata-list@lists.umanitoba.ca]
Envoyé : dimanche 19 mars 2006 23:21
À : epidata-list(a)lists.umanitoba.ca
Objet : Re: [EpiData-list] Design decision for epidata analysis - missing andrestricted words
I vote for strategy a) to display a warning - this seems most user friendly and can reduce the problem well.
Bests
Max
On 20 Mar 2006, at 7:34, epidata-list(a)lists.umanitoba.ca wrote:
> This mail is technical in nature, if you are not interested in
> technical aspects, just delete the mail.
>
> The issue of how to read ,., in a comma separated file is now solved
> and can be tested in v 1.1, rel 7. build 68 - which is the latest on
> the web site.
>
> One other issue which someone might want to comment on is the use of
> restricted words.
> We know that the use of the words e.g.: date year month weeknum and
> other common terms which can also be functions gives a problem.
>
> It would be helpful if users will comment on strategies to handle
> this. The current implementation is NOT to worry about this. In some
> programmes there is a list of illegal terms.
>
> Should we :
> a. Adopt a strategy, where users are warned when creating files where
> field names/variables are
> given the same names as a restricted word - a warning.
>
> b. Maintain current where users will find out since either an error or
> occur or nothing happens when
> they create confusion in this way - a "non-friendly" way towards
> users.
>
> c. A strategy where field names cannot have the same names as
> functions. - a restrictive strategy.
>
> In future similar questions as this I will attempt to add "Design
> decision" .... in the subject line, such that users on the list not
> wishing to get this type of mail can add to a filter.
>
> To check which version a particular build of EpiData Analysis has
> issue the command:
> . version
> Current version: 1.1 Release 7 (Build 68) If you are on internet the
> programme will also look up on the website the latest public release,
> e.g.:
> Latest public release 1.1 Release 1 (Build 62) Report problems and
> suggestions to <the EpiData list> Development versions are located on
> the <EpiData testing page>
>
> Where the text in < ......> are hyperlinks, such that if you click on
> them your standard browser will open on those pages.
>
> regards
> Jens Lauritsen
>
> _______________________________________________
> EpiData-list mailing list
> EpiData-list(a)lists.umanitoba.ca
> http://lists.umanitoba.ca/mailman/listinfo/epidata-list
This mail is technical in nature, if you are not interested in technical
aspects, just delete the mail.
The issue of how to read ,., in a comma separated file is now solved and
can be tested
in v 1.1, rel 7. build 68 - which is the latest on the web site.
One other issue which someone might want to comment on is the use of
restricted words.
We know that the use of the words e.g.: date year month weeknum
and other common terms which can also be functions gives a problem.
It would be helpful if users will comment on strategies to handle this.
The current implementation
is NOT to worry about this. In some programmes there is a list of
illegal terms.
Should we :
a. Adopt a strategy, where users are warned when creating files where
field names/variables are
given the same names as a restricted word - a warning.
b. Maintain current where users will find out since either an error or
occur or nothing happens when
they create confusion in this way - a "non-friendly" way towards users.
c. A strategy where field names cannot have the same names as functions.
- a restrictive strategy.
In future similar questions as this I will attempt to add "Design
decision" .... in the subject line, such
that users on the list not wishing to get this type of mail can add to a
filter.
To check which version a particular build of EpiData Analysis has issue
the command:
. version
Current version: 1.1 Release 7 (Build 68)
If you are on internet the programme will also look up on the website
the latest public release, e.g.:
Latest public release 1.1 Release 1 (Build 62)
Report problems and suggestions to <the EpiData list>
Development versions are located on the <EpiData testing page>
Where the text in < ......> are hyperlinks, such that if you click on
them your standard browser will open on
those pages.
regards
Jens Lauritsen
If the procedure will never be less than a few hours, this is just a
matter of checking whether end time is less than start time - code added
below. For a procedure or event that can take more than 24 hours, you
have to have a separate field for end date.
---Jamie
Dale wrote:
> I'm a novice epidata user and am calculating elapsed time for a
> procedure (never more than a few hours) which can cross midnight.
> This is implicit if the ending time is less than the starttime. Can
> anyone suggest how modify the code below to add a day when the endtime
> is after midnight? Thanks! --Dale
>
> BEFORE FILE
> DEFINE varStartTime ########.#####
> DEFINE varEndTIME ########.#####
> END
>
> STARTTIM
> RANGE 0 23.59
> END
>
> ENDTIME
> RANGE 0 23.59
> AFTER ENTRY
> varStartTime=STARTDAT+TIME2NUM(STARTTIM)
> varEndTime=STARTDAT+TIME2NUM(ENDTIME)
if endtime < starttim then
varendtime = varendtime + 1 // add one day to end time
endif
HOURSMIN=NUM2TIME(varEndTime-varStartTime)
> END
>
>
> HOURSMIN
> NOENTER
> END
The current test build of analysis (build 68) will be put out for
general download
unless some of you find serious problems.
We know there are still some issues being tested,
e.g. the rewriting of the table module is not completed
and the handling of missing values in comma separated files.
But other aspects are final,
e.g. the development of detailed help files for a number of main commands
and removal of some floating point error bugs.
Regards
Jens Lauritsen
As the discussion has rolled out I am sure we can all agree that
"Missing data and zero are two totally different things and should never
be interchanged. "
Obviously I never intended to have a meaning other than stated with the
sentence above. The problem which arose is however that when creating
comma separated files it turns out that the contents of the files varies a
lot depending on which system is creating the data files.
Therefore I asked :
> In other words the question is how to read ",.," should it be:
> Option 1: as 0.0 (which is current behaviour)
> or Option 2: .
My worry was that around the world in some places some systems export a
zero as ",.," whereas in other areas as ",,"
>From the messages added by users I decided to implement the latter option.
That is in one of the next builds you will see that:
Any content of a comma separated file will be imported as :
missing if the content of the csv file is: ,., or ,, for a given field.
A similar question is related to reading of "empty" boolean fields. E.g.
access exports these as "FALSE" or "NO", not as "no value".
There is only one cure to this type of problem: The software should not be
given control of standards. The standard should be settled by the user or
the user community.
Regards
Jens Lauritsen.
EpiData Association
Hi,
Yves' answer is quite good. My only concern is whether bloodpresure should
be recorded in a independent file (BLOOD.REC) or it is a field in the
Visits.rec one.
As far as I understood blood presure levels are going to be measured in
each visits. If that is the case, in my opinion blood presure should be
field of the visits.rec file.
Treatment, I dare say, should be recorded in a independent file since it
shouldn't change with every visit.
What do you think?
Greetings, Pedro
Pedro Arias Bohigas
John Ericssons gatan, 12 5 tr
112 22 Stockholm
Sweden
Phone (cell) 0734421130
Phone (international calls)+46734421130
> Dear epidata
>
> I would like to set up a database for a clinic. The 4 rec files are
> history, visit, bloodresults and treatment. The clinicnr of the patient
> is the unique id that I would like to carry over between these rec
> files. Secondly the number of records for visits/bloodresults/treatment
> for each patient with a specific clinicnr can be more than one over
> time. However history only has to be completed once (can be mother
> file?).
>
> When creating a relational database am I right if I say that I cannot
> keep clinicnr as the unique nr in every rec file as that will only allow
> ONE record with that clinicnr and I need to be able to do multiple
> records eg for visits on that one clinicnr. The House.rec etc example
> does not really help me with this as the visit rec file is the last rec
> file. I have 3 "children files" following one after another.
>
> Please help with the check files to relate these 4 files whilst keeping
> clinicnr as the unique id but allowing multiple records per clinicnr.
>
> Thanks
>
> Paul
>
>
>
> Prof Paul Rheeder
>
> Division of Clinical Epidemiology
>
> Faculty of Health Sciences
>
> University of Pretoria
>
> PO Box 667
>
> Pretoria 0001
>
> Tel 27 12 354 1488
>
> Fax 27 12 354 1489
>
>
>
>
>
> Hello Paul,
>
> Yes, you're right: in each "child file" there must be the clinicnr
> (declared as "key") and, in your case, there must be also another
> id-number in each child file declared as "key unique".
> Usually, it's convenient to define a "visitnr" in each child file and to
> concatenate "clinicnr | visitnr" in a unique id-number
>
> As far as the relations between files are concerned, I would recommend
> to relate each child file to the master file (an not to relate the
> first child file to the master file, then the second child file to the
> first child file, and so forth). Please note that this can be done
> anywhere in the master file (i.e. at a different place for each child
> file or at a same place). Please note also that you can decide to open
> a child file or not, according to the result of a question.
>
> Hereafter is an example of what you can do. Hope it helps.
>
> Happy computing!
>
> Yves
>
>
> ************
> Master file (for example clinic.chk for clinic.rec file)
> ************
>
> CLINICNR (better if defined as string)
> key unique
> mustenter
> END
>
> VAR1
> ...
> END
>
>
> VARXXX
> ...
> AFTER ENTRY
> HELP "do you want to enter visit data for this patient? (Y/N)"
> KEYS="YN" TYPE=CONFIRMATION
> IF RESULTVALUE=2 THEN
> GOTO nextvar
> ELSE
> IF RESULTVALUE=1 THEN
> RELATE clinicnr VISIT.REC
> ENDIF
> ENDIF
> END
> END
>
> ...
>
>
> VARYYY
> ...
> AFTER ENTRY
> HELP "do you want to enter blood data for this patient? (Y/N)"
> KEYS="YN" TYPE=CONFIRMATION
> IF RESULTVALUE=2 THEN
> GOTO nextvar
> ELSE
> IF RESULTVALUE=1 THEN
> RELATE clinicnr BLOOD.REC
> ENDIF
> ENDIF
> END
> END
>
>
> etc.
>
>
> ************
> Child file (for example visit.chk for the visit.rec file)
> ************
>
> CLINICNR (string variable)
> key
> END
>
> ** please note that the above field will be automatically filled **
>
> VISITNR (string variable)
> key
> mustenter
> END
>
> VISITID (string variable)
> key unique
> BEFORE ENTRY
> let visitid=clinicnr+visitnr
> goto nextvar
> END
> END
>
Dear epidata
I would like to set up a database for a clinic. The 4 rec files are history,
visit, bloodresults and treatment. The clinicnr of the patient is the unique
id that I would like to carry over between these rec files. Secondly the
number of records for visits/bloodresults/treatment for each patient with a
specific clinicnr can be more than one over time. However history only has
to be completed once (can be mother file?).
When creating a relational database am I right if I say that I cannot keep
clinicnr as the unique nr in every rec file as that will only allow ONE
record with that clinicnr and I need to be able to do multiple records eg
for visits on that one clinicnr. The House.rec etc example does not really
help me with this as the visit rec file is the last rec file. I have 3
"children files" following one after another.
Please help with the check files to relate these 4 files whilst keeping
clinicnr as the unique id but allowing multiple records per clinicnr.
Thanks
Paul
Prof Paul Rheeder
Division of Clinical Epidemiology
Faculty of Health Sciences
University of Pretoria
PO Box 667
Pretoria 0001
Tel 27 12 354 1488
Fax 27 12 354 1489
Missing data and zero are two totally different things and should never be interchanged. If you are analyzing data, missing values are automatically excluded (unless you specifically request them not to be). If the missing values are defaulted to zero they would be included in the analysis and drastically alter the analysis results.
Cheers,
Jackie
-----Original Message-----
From: epidata-list-bounces(a)lists.umanitoba.ca [mailto:epidata-list-bounces@lists.umanitoba.ca] On Behalf Of epidata-list(a)lists.umanitoba.ca
Sent: 14 March 2006 10:29
To: epidata-list(a)lists.umanitoba.ca
Subject: RE: [EpiData-list] How should EpiData Analysis readaCSV(CommaSeparated File)
On my point of view also, there is no way for a missing data to be treated as a zero.
Gilles
-----Message d'origine-----
De : epidata-list(a)lists.umanitoba.ca [mailto:epidata-list@lists.umanitoba.ca]
Envoyé : dimanche 12 mars 2006 20:59
À : epidata-list(a)lists.umanitoba.ca
Objet : AW: [EpiData-list] How should EpiData Analysis read aCSV(CommaSeparated File)
I also agree that missing is not equal to zero.
I hope the vote is clear on that
marcel
________________________________
Von: epidata-list(a)lists.umanitoba.ca [mailto:epidata-list@lists.umanitoba.ca]
Gesendet: Fr 10.03.2006 13:57
An: epidata-list(a)lists.umanitoba.ca
Betreff: RE: [EpiData-list] How should EpiData Analysis read a CSV(CommaSeparated File)
Hello!
I totally agree with you Max on this question.
Cheers,
Bellinda
-----Original Message-----
From: epidata-list-bounces(a)lists.umanitoba.ca
[mailto:epidata-list-bounces@lists.umanitoba.ca] On Behalf Of epidata-list(a)lists.umanitoba.ca
Sent: Thursday, March 09, 2006 6:35 PM
To: epidata-list(a)lists.umanitoba.ca
Subject: Re: [EpiData-list] How should EpiData Analysis read a CSV (CommaSeparated File)
Hello Jens,
I would strongly argue that a missing is a missing and a 0 (zero) is a very distinct value - hence never turn missings into zero by default...
or in short: Option 2
Bests
Max
On 10 Mar 2006, at 10:21, epidata-list(a)lists.umanitoba.ca wrote:
> A question has come up.
>
> Please consider how you find reading of a CSV file in analysis
> appropriate:
>
>
> In a csv file the following data is found:
> id, s, pos, sex, ill
> 1,.,.,f,0
> 2...... etc (rest of records)
>
> The data in line can be interpreted in two ways:
> Option 1:
> ID= 1
> s= 0.0
> pos=0.0
> SEX = "f" ill = 0
>
> Option 2:
> ID= 1
> s= .
> pos=.
> SEX = "f" ill = 0
>
> In other words the question is how to read ",.," should it be:
> Option 1: as 0.0 (which is current behaviour)
> or Option 2: .
>
> Any comments on desired behaviour appreciated.
>
> regards
>
> Jens Lauritsen
> EpiData Association
> _______________________________________________
> EpiData-list mailing list
> EpiData-list(a)lists.umanitoba.ca
> http://lists.umanitoba.ca/mailman/listinfo/epidata-list
_______________________________________________
EpiData-list mailing list
EpiData-list(a)lists.umanitoba.ca
http://lists.umanitoba.ca/mailman/listinfo/epidata-list
_______________________________________________
EpiData-list mailing list
EpiData-list(a)lists.umanitoba.ca
http://lists.umanitoba.ca/mailman/listinfo/epidata-list
On my point of view also, there is no way for a missing data to be treated as a zero.
Gilles
-----Message d'origine-----
De : epidata-list(a)lists.umanitoba.ca [mailto:epidata-list@lists.umanitoba.ca]
Envoyé : dimanche 12 mars 2006 20:59
À : epidata-list(a)lists.umanitoba.ca
Objet : AW: [EpiData-list] How should EpiData Analysis read aCSV(CommaSeparated File)
I also agree that missing is not equal to zero.
I hope the vote is clear on that
marcel
________________________________
Von: epidata-list(a)lists.umanitoba.ca [mailto:epidata-list@lists.umanitoba.ca]
Gesendet: Fr 10.03.2006 13:57
An: epidata-list(a)lists.umanitoba.ca
Betreff: RE: [EpiData-list] How should EpiData Analysis read a CSV(CommaSeparated File)
Hello!
I totally agree with you Max on this question.
Cheers,
Bellinda
-----Original Message-----
From: epidata-list-bounces(a)lists.umanitoba.ca
[mailto:epidata-list-bounces@lists.umanitoba.ca] On Behalf Of epidata-list(a)lists.umanitoba.ca
Sent: Thursday, March 09, 2006 6:35 PM
To: epidata-list(a)lists.umanitoba.ca
Subject: Re: [EpiData-list] How should EpiData Analysis read a CSV (CommaSeparated File)
Hello Jens,
I would strongly argue that a missing is a missing and a 0 (zero) is a very distinct value - hence never turn missings into zero by default...
or in short: Option 2
Bests
Max
On 10 Mar 2006, at 10:21, epidata-list(a)lists.umanitoba.ca wrote:
> A question has come up.
>
> Please consider how you find reading of a CSV file in analysis
> appropriate:
>
>
> In a csv file the following data is found:
> id, s, pos, sex, ill
> 1,.,.,f,0
> 2...... etc (rest of records)
>
> The data in line can be interpreted in two ways:
> Option 1:
> ID= 1
> s= 0.0
> pos=0.0
> SEX = "f" ill = 0
>
> Option 2:
> ID= 1
> s= .
> pos=.
> SEX = "f" ill = 0
>
> In other words the question is how to read ",.," should it be:
> Option 1: as 0.0 (which is current behaviour)
> or Option 2: .
>
> Any comments on desired behaviour appreciated.
>
> regards
>
> Jens Lauritsen
> EpiData Association
> _______________________________________________
> EpiData-list mailing list
> EpiData-list(a)lists.umanitoba.ca
> http://lists.umanitoba.ca/mailman/listinfo/epidata-list
_______________________________________________
EpiData-list mailing list
EpiData-list(a)lists.umanitoba.ca
http://lists.umanitoba.ca/mailman/listinfo/epidata-list