Skip to content

CohortStudy

bmosseveld edited this page May 29, 2018 · 1 revision

Description

This module outputs patient level data containing information about comorbidities, measurements, prescriptions etc before or during cohort time. The search windows around cohort start can be defined on item level. If multipleValueMeasurements is set, for each value of the measurements in the multiValueMeasurements list the module outputs patient level data containing information about comorbidities, measurements, prescriptions etc before or during cohort time. The search windows around cohort start can be defined on item level. Additionally, this data can be extracted around the date of death as defined by deathLabels in the event file (not complete yet)

Input

This module needs the patients file to work. When events, ATC codes, and/or measurements are used in the parameters the events file, prescriptions file, and/or measurements file are needed.

Parameters

Parameter Values Description
multipleValueMeasurements String List of measurements for which multiple values in population time have to be written to the output file.
Format:

MeasurementType;Label

The Label is optional. If it is not specified the MeasurementType is used as label. For each measurement specified it adds the columns Value and TimeTo<label>.

Can occur multiple times in the script.
comorbidities String List of comorbidities that are checked for their presence in a time window around cohort start.
Format:

EventType; Label; Description[; [ TimeWindowStart ][; [ TimeWindowEnd ]]]

where

EventType = The variable name used in the event file.
Label = The label used in the output file.
Description = The text used in the result tables.
TimeWindowStart = Optional parameter that overrules the timeWindowComorbidity setting. Start of time window before index date. Start day is included. -1 = All history
TimeWindowEnd = Optional parameter that overrules the index date at TimeWindowEnd. The end of time window relative to index date. End day is not included. cohortEnd = end of cohort

For example:

"MI;Myocardial Infarction"
Look for MI in the window indexDate-timeWindowComorbidities<= X <indexDate

"MI;Myocardial Infarction;-365"
Look for MI in the window indexDate-365<= X <indexDate

"MI;Myocardial Infarction;-365;10"
Look for MI in the window indexDate-365<= X <indexDate + 10

"MI;Myocardial Infarction;-365;cohortEnd"
Look for MI in the window indexDate-365<= X <cohortEnd

Can occur multiple times in the script.
comorbiditiesDeath String List of comorbidities that are checked for their presence in a time window around cohort start.
Format:

EventType; Label; Description[; [ TimeWindowStart ][; [ TimeWindowEnd ]]]

where

EventType = The variable name used in the event file. If EventType = "COMORBIDITIES" all comorbidity definitions in <comorbidities> are added.
Label = The label used in the output file.
Description = The text used in the result tables.
TimeWindowStart = Optional parameter that overrules the timeWindowComorbidity setting. Start of time window before index date. Start day is included. -1 = All history
TimeWindowEnd = Optional parameter that overrules the index date at TimeWindowEnd. The end of time window relative to index date. End day is not included. cohortEnd = end of cohort

For example:

"MI;Myocardial Infarction"
Look for MI in the window deathDate-timeWindowComorbidities<= X <deathDate

"MI;Myocardial Infarction;-365"
Look for MI in the window deathDate-365<= X <deathDate

"MI;Myocardial Infarction;-365;10"
Look for MI in the window deathDate-365<= X <deathDate + 10

"MI;Myocardial Infarction;-365;cohortEnd"
Look for MI in the window deathDate-365<= X <cohortEnd

Can occur multiple times in the script.
measurements String List of measurements of interest to be searched a time window (inclusive) around cohort start. The closest measurement is selected.
Format:

MeaurementType;Values;Description [; [ TimeWindowStart ][; [ TimeWindowEnd [; [ MissingValue ]]]]]

where

MeasurementType = The variable name used in the measurement file.
Values = A commma-separated list of values or "continues" to define a continuous valued variable.
Label = The label used in the result tables.
TimewindowStart = Optional parameter that overrule the timeWindowMeasurement setting. Start of time window before index date. Start day is included. -1 = All history
TimewindowEnd = Optional parameter that overrules the index date at TimeWindowEnd. End of time window relative to index date. End day is not included. cohortEnd = end of cohort
MissingValue = Optional parameter the overrules the UNKNOWN label used for missing values.
For example:

"SMOKER;RECENT,NEVER,PAST;Smoking"
Smoking Status in the window indexDate-timeWindowMeasurements<= X <indexDate

"SMOKER;RECENT,NEVER,PAST;Smoking;-365"
Smoking Status in the window indexDate-365<= X <indexDate

"SMOKER;RECENT,NEVER,PAST;Smoking;-365; 10"
Smoking Status in the window indexDate-365<= X <indexDate + 10

"SMOKER;RECENT,NEVER,PAST;Smoking;-365; cohortEnd"
Smoking Status in the window indexDate-365<= X <cohortEnd

"SMOKER;RECENT,NEVER,PAST;Smoking;-365; cohortEnd;NONE"
Smoking Status in the window indexDate-365<= X <cohortEnd use NONE as missing value

"BMI;continuous"
BMI in the window indexDate-timeWindowMeasurements <= X < indexDate

Can occur multiple times in the script.
measurementsDeath String List of measurements are search before and at death date.
Format:

MeaurementType;Values;Description

where

MeasurementType = The variable name used in the measurement file. If MeasurementType = "MEASUREMENTS" all measurement definitions as defined in <measurements> are added.
Values = A comma-separated list of values, or "continues" to define a continuous valued variable.
MissingValue = One value used if no measurement is available.
Description = The text used in the result tables

Example:
"Smoker;1,2;Smoking status"
"BMI;continues;Body Mass Index"

Can occur multiple times in the script.
measurementCount String List of measurements of interest checked to count the number of occurrences in a time window (inclusive) around the index date.
Format:

Measurement types;Label;Description;MinAge; MaxAge;TimeWindoStart;TimeWindowEnd

where

Measurement types = A comma separated list of measurement types.
Label = The label used in the result tables.
Description = The description.
MinAge = The minimum age value (inclusive), -1 means no minimum.
MaxAge = The maximum age value (exclusive), -1 means no maximum.
TimeWindowStart = Start of time window before index date. Start day is included. birth = All history.
TimeWindowEnd = Optional parameter that overrules the index date as TimeWindowEnd. End of time window relative to index date. End day is not included. cohortEnd = end of cohort.

For example:

"BMI;BMI_15-40;Body Mass Index;15;40;-365"
The number of BMI measurements at an age in the range 15 to 40 in the window indexDate-365<= X <indexDate

"BMI;BMI_15-40;Body Mass Index;15;40;-365,10"
The number of BMI measurements at an age in the range 15 to 40 in the window indexDate-365<= X <indexDate + 10

"BMI;BMI_15-40;Body Mass Index;15;40;-365, cohortEnd"
The number of BMI measurements at an age in the range 15 to 40 in the window indexDate-365<= X <cohortEnd

Can occur multiple times in the script.
prescriptions String List of prescriptions of interest checked for their presence in a time window (inclusive) around cohort start.
Format:

ATC;Label;[;[TimeWindowStart][;[TimeWindowEnd]]]

where

ATC = A list of atc codes, higher level allowed.
Label = The label used in the result tables.
TimeWindowStart = Optional parameter that overrules the timeWindowPrescription setting. Start of time window before index date. Start day is included. -1 = All history.
TimeWindowEnd = Optional parameter that overrules the index date at TimeWindowEnd. End of time window relative to index date. End day is not included. cohortEnd = end of cohort.

For example:

"R03BB06,R03BB07;LAMA"
Use of drugs in the window indexDate-timeWindowMeasurements<= X <indexDate

"R03BB06,R03BB07;LAMA;-365"
Use of drugs in the window indexDate-365<= X <indexDate

"R03BB06,R03BB07;LAMA;-365;10"
Use of drugs in the window indexDate-365<= X <indexDate + 10

"R03BB06,R03BB07;LAMA;-365;cohortEnd"
Use of drugs in the window indexDate-365<= X <cohortEnd

Can occur multiple times in the script.
daysToNextPrescription String List of prescriptions for which the time till the next event will be measured. If their is no next prescription the value is missing.
Format:

ATC;Label;Description;InCohort; IncludeIndexDate; WindowEnd

where

ATC = Label of the event in inputfile
Label = Label used in the output.
Description = Text used if useLabel = false. Can be empty.
InCohort (optional) = If true only search during cohort time (default = false).
IncludeIndexDate = (Optional) If true indexDate is included (default = false).
WindowEnd = CohortEnd or number of days relative to index date.

Examples:

"R03BB06,R03BB07;DaysToNextLAMA; ;true;true; cohortend"

_"R03BB06,R03BB07; DaysToNextLAMAWithinYear; ;true;true;365"

Can occur multiple times in the script.
daysSincePreviousPrescription String List of prescriptions for which the time till the previous prescription will be measured. If their is no previous prescription the value is missing.
Format:

ATC;Label;Description;InCohort; IncludeIndexDate;WindowStart

where

ATC = Label of the event in inputfile.
Label = Label used in the output.
Description = Text used if useLabel = false. Can be empty.
InCohort = (Optional) If true only search during cohort time (default = false).
IncludeIndexDate = (Optional) If true indexDate is included (default = false).
WindowStart = Birth or number of days relative to index date.

Examples:

"R03BB06,R03BB07; DaysSincePreviousLAMA;; true;true;cohortend"

"R03BB06,R03BB07; DaysSincePreviousLAMAWithinYear;; true;true;-365"

Can occur multiple times in the script.
prescriptionsDeath String List of prescriptions of interest to be searched for around death label.
Format:

ATC;Label;[; [ TimeWindowStart ][; [ TimeWindowEnd ]]]

where

ATC = A list of atc codes, higher level allowed.
Label = The label used in the result tables.
TimewindowStart = Optional parameter that overrules the timeWindowPrescription setting. Start of time window before deathDate. Start day is included. -1 = All history.
TimewindowEnd = Optional parameter that overrules the deathDate at TimeWindowEnd. End of time window relative to deathDate. End day is not included. cohortEnd = end of cohort

For example:

"R03BB06,R03BB07;LAMA"
Use of drugs in the window deathDate-timeWindowMeasurements<= X <deathDate

"R03BB06,R03BB07;LAMA;;-365"
Use of drugs in the window deathDate-365<= X <deathDate

"R03BB06,R03BB07;LAMA;;-365;10"
Use of drugs in the window deathDate-365<= X <deathDate + 10

"R03BB06,R03BB07;LAMA;;-365;cohortEnd"
Use of drugs in the window deathDate-365<= X <cohortEnd

Can occur multiple times in the script.
deathLabels String Labels in the event file that define death.

Can occur multiple times in the script.
ageGroups String List of age group definitions.
Format:

Min;Max;Label

where

Min = The minimum age in years (inclusive)
Max = The maximum age in years (exclusive)
Label = The label used in output

Example: "0;5;0-5"

Can occur multiple times in the script.

Can occur multiple times in the script.
firstEventYearMonth String Defines for which events the year and month of the first diagnosis needs to be determined in full patient history. This will add a column for the month (Month<EventType>) and for the year (Year<EventType>) in the output, e.g. YearHTN
Format:

Eventtype

where

EventType = Label of the event in inputfile.

Example: HTN

Can occur multiple times in the script.
daysToNextEvent String List of Events for which the time till the next event will be measured. If their is no next event the values is missing.
Format:

EventType;Label;Description;InCohort; IncludeIndexDate

where

EventType = Label of the event in inputfile.
Label = Label used in the output.
Description = Text used if useLabel = false. Can be empty.
InCohort = (Optional) If true only search during cohort time (default = true)
IncludeIndexDate = (Optional) If true indexDate is included (default = false)

Example: "HOSP;DaysToNextHosp;;true"

Can occur multiple times in the script.
daysToPreviousEvent String List of Events for which the time till the previous event will be measured. If their is no next event the values is missing.
Format:

EventType;Label;Description;InCohort; IncludeIndexDate

where

EventType = Label of the event in inputfile.
Label = Label used in the output.
Description = Text used if useLabel = false. Can be empty.
InCohort = (Optional) If true only search during cohort time (default = true)
IncludeIndexDate = (Optional) If true indexDate is included (default = false)

Example: "HOSP;HOSP;DaysToPrevioustHosp"

Can occur multiple times in the script.
eventCount String List of events of interest checked to count the number of occurrences in a time window around the index date.
Format:

Event types;Label;Description;MinAge; MaxAge;TimeWindoStart;TimeWindowEnd

Event types = A comma separated list of event types.
Label = The label used in the result tables.
Description = The description.
MinAge = The minimum age value (inclusive), -1 means no minimum.
MaxAge = The maximum age value (exclusive), -1 means no maximum.
TimeWindowStart = Start of time window before index date. Start day is included. birth = All history.
TimeWindowEnd = Optional parameter that overrules the index date as TimeWindowEnd. End of time window relative to index date. End day is not included. cohortEnd = end of cohort.

For example:

"MI;MI_15-40;Miocardial Infarction;15;40;-365"
The number of MI events at an age in the range 15 to 40 in the window indexDate-365<= X <indexDate

"MI;MI_15-40;Miocardial Infarction;15;40;-365 ,10"
The number of MI events at an age in the range 15 to 40 in the window indexDate-365<= X <indexDate + 10

"MI;MI_15-40;Miocardial Infarction;15;40;-365 ,cohortEnd"
The number of MI events at an age in the range 15 to 40 in the window indexDate-365<= X <cohortEnd

Can occur multiple times in the script.
daysToNextMeasurement String List of measurements for which the time till the next event will be measured. If their is no next event the values is missing.
Format:

MeasurementType;Label;Description;Value; InCohort;IncludeIndexDate

MeasurementType = Label of the measurement in inputfile.
Label = Label used in the output.
Description = Text used if useLabel = false. Can be empty.
Value = Value to search for. if all values match
InCohort = (Optional) If true only search during cohort time (default = true)
IncludeIndexDate = (Optional) If true indexDate is included (default = false)

Example:

"SMOKING; DaysToNextSmokeCurrent; ;CURRENT;true;true"

Can occur multiple times in the script.
daysToPreviousMeasurement String List of measurements for which the time till the previous event will be measured. If their is no next event the values is missing.
Format:

MeasurementType;Label;Description;Value; InCohort;IncludeIndexDate

MeasurementType = Label of the measurement in inputfile.
Label = Label used in the output.
Description = Text used if useLabel = false. Can be empty.
Value = Value to search for. if all values match
InCohort = (Optional) If true only search during cohort time (default = true)
IncludeIndexDate = (Optional) If true indexDate is included (default = false)

Example:

"SMOKING;SMOKING; DaysPreviousSmokeCurrent; CURRENT;true;true"

Can occur multiple times in the script.
defaultWindowStartMeasurement Integer Default number of days relevant to cohort start to search for measurements.
For example -365 means 365 days before cohort start.
Can be overruled by measurement specific definitions.

Can occur multiple times in the script.
defaultWindowStartPrescription Integer Default number of days relevant to cohort start to search for prescriptions.
For example -365 means 365 days before cohort start.
Can be overruled by measurement specific definitions.
defaultWindowStartComorbidity Integer Default number of days before cohort start to search for comorbidities.
For example -365 means 365 days before cohort start.
Can be overruled by comorbidity specific definitions.
defaultWindowStartEvent Integer Default number of days relative to prescription start to search for events.
For example 365 means 365 days before prescription start.
Can be overruled by event specific definitions.
outputPrevalentIncident true, false Output Prevalent/Incident status at cohort start.
This value is set by the EventCohortDefinition Filter otherwise the value UNKNOWN will be used.
ageAtStartAsFraction true, false When true the ageAtStart is computed as a fraction of years otherwise it is the normal age.
anonymizePatientID true, false If true an anonymizedPatientID is used instead of the original patient ID.

Output

This module creates one intermediate file with the following columns:

Parameter Description
Database The name of the database.
EventType The type of the event tat marks the start of the cohort. This variable is only available when the EventCohortDefinition modifier is used.
PatientID The real ID of the patient.
Gender The gender of the patient.
BirthDate The birth date of the patient.
PopulationStart The population start date of the patient.
PopulationEnd The population end date of the patient.
CohortStart The cohort start date of the patient.
CohortEnd The cohort end date of the patient.

The textual output of this module contains the following columns:

Parameter Description
Database The name of the database.
EventType The type of the event tat marks the start of the cohort. This variable is only available when the EventCohortDefinition modifier is used.
PatientID The ID of the patient.
Gender The gender of the patient.
AgeStart The age of the patient at the start of the cohort.
Year Year of cohortStart.
FollowUpPre cohortStart - populationStart in years.
FollowUpPost populationEnd - cohortStart in years.
AgeStartCat Only available when ageGroups are defined.
The ageGroup of the patient. If no matching ageGroup can be found UNKOWN.
PrevInc Only available when outputPrevalentIncident = true.
PREVALENT or INCIDENT.
Year<eventType> Only available for the eventTypes in firstEventYearMonth.
The year of the first occurrence of the event.
Month<eventType> Only available for the eventTypes in firstEventYearMonth.
The month of the first occurrence of the event.
Age<eventType> Only available for the eventTypes in firstEventYearMonth.
The age of the patient in years (floating point) at the first occurrence of the event.
<comorbidities 1>
    :    
<comorbidities N>
1 if the comorbidity is present, otherwise 0.
<daysToNextEvent 1>
    :    
<daysToNextEvent N>
Number of days to the next event according to the daysToNextEvent definition. If no next event, then empty.
<daysToPreviousEvent 1>
    :    
<daysToPreviousEvent N>
Number of days to the previous event according to the daysToPreviousEvent definition. If no previous event, then empty.
<eventCount 1>
    :    
<eventCount N>
The number of events according to the eventCount definition.
<prescriptions 1>
    :    
<prescriptions N>
1 if the prescription is present, otherwise 0.
<daysToNextPrescription 1>
    :    
<daysToNextPrescription N>
Number of days to the next prescription according to the daysToNextPrescription definition. If no next prescription, then empty.
<daysSincePreviousPrescription 1>
    :    
<daysSincePreviousPrescription N>
Number of days to the previous prescription according to the daysToPreviousPrescription definition. If no previous prescription, then empty.
<measurements 1>
    :    
<measurements N>
The value of the measurement, otherwise empty.
<measurementCount 1>
    :    
<measurementCount N>
The number of measurements according to the measurementCount definition.
<daysToNextMeasurement 1>
    :    
<daysToNextMeasurement N>
The number of days to the next measurement according to the daysToNextMeasurement definition.
<daysToPreviousMeasurement 1>
    :    
<daysToPreviousMeasurement N>
The number of days to the previous measurement according to the daysToPreviousMeasurement definition.
CauseDeath Only available when <deathLabels> are specified.
The name of first occurrence of one of the events specified in the deathLabels parameter. Otherwise empty.
DaysYrDth Only available when <deathLabels> are specified.
Max(dateOfDeath - 365 days, cohortStart) - dateOfDeath
AgeDeath Only available when <deathLabels> are specified.
The age of the patient at the dateOfDeath in years (floating point).
AgeDeathCat Only available when <deathLabels> and <ageGroups> <are specified.
The ageGroup of the patient at the dateOfDeath.
<comorbiditiesDeath 1>
    :    
<comorbiditiesDeath N>
Only available when <deathLabels> are specified.
1 if the comorbidity is present at the dateOfDeath, otherwise 0.
<prescriptionsDeath 1>
    :    
<prescriptionsDeath N>
Only available when <deathLabels> are specified.
1 if the prescription is present at the dateOfDeath, otherwise 0.
<measurementsDeath 1>
    :    
<measurementsDeath N>
Only available when <deathLabels> are specified.
The value of the measurement at the dateOfDeath, otherwise empty.
CohortTime cohortEnd - cohortStart in days.
<multipleValueMeasurements 1>Value
    :    
<multipleValueMeasurements N>Value
The value of the measurement in the multipleValueMeasurements.
<multipleValueMeasurements 1>TimeTo
    :    
<multipleValueMeasurements N>TimeTo
measrementDate - cohortStart for the value of the measurement in the multipleValueMeasurements.

Graphical output

No graphs are produced in this module.

Example of script file

Module Cohort Study (CohortStudy)
		
	comorbidities = AMI;HXAMI;History of AMI;-366;0
	comorbidities = ANX;HXANX;History of anxiety;-366;0
	comorbidities = BIPOL;HXBIPOL;History of bipolar disorder;-366;0
	
	comorbidities = STROKE;HXSTROKE;History of stroke;-1;1
	comorbidities = AD;HXAD;History of Alzheimer�s disease;-1;1
	comorbidities = BRAINCAN;HXBRAINCAN;History of brain cancer;-1;1
	
	comorbiditiesDeath = 
	
	measurements = 
	
	//TODO: measurements before death also in flexible time windows etc.
	measurementsDeath = 
	
	prescriptions = N06DA02;USEDONEPEZIL;Use Donepezil;-366;365
	prescriptions = N06DA03;USERIVASTIGMINE;Use Rivastigmine;-366;365
	prescriptions = N06DA04;USEGALANTAMINE;Use Galantamine;-366;365
	prescriptions = N06DX01;USEMEMANTINE;Use Memantine;-366;365
	
	daysToNextPrescription = N06DA02;N_DONEPEZIL;Next Donepezil;false;true;365
	daysToNextPrescription = N06DA03;N_RIVASTIGMINE;Next Rivastigmine;false;true;365
	daysToNextPrescription = N06DA04;N_GALANTAMINE;Next Galantamine;false;true;365
	daysToNextPrescription = N06DX01;N_MEMANTINE;Next Memantine;false;true;365
	
	daysSincePreviousPrescription = N06DA02;P_DONEP;Prev Donepezil;false;false;-365
	daysSincePreviousPrescription = N06DA03;P_RIVAST;Prev Rivastigmine;false;false;-365
	daysSincePreviousPrescription = N06DA04;P_GALANT;Prev Galantamine;false;false;-365
	daysSincePreviousPrescription = N06DX01;P_MEMANT;Prev Memantine;false;false;-365
	
	prescriptionsDeath = 
	deathLabels = 
	ageGroups = 
	firstEventYearMonth = 
	daysToNextEvent = 
	daysToPreviousEvent = 
	eventCount = GPVISIT;NGPVISIT;Number of GP visits prior to index date;;;-365;1
	daysToNextMeasurement = 
	daysToPreviousMeasurement = 
	defaultWindowStartMeasurement = 0
	defaultWindowStartPrescription = 0
	defaultWindowStartComorbidity = 0
	defaultWindowStartEvent = 0
	outputPrevalentIncident = false
	anonymizePatientID = true

	createGraphs = true
	outputInFLOC = false
	intermediateFiles = true
	intermediateStats = true
/Module

Change list

Date tag Change
1-1-2018 c07878 First Open-Source Release
Clone this wiki locally