Build Status

SelfControlledCaseSeries is part of HADES.


SelfControlledCaseSeries is an R package for performing Self-Controlled Case Series (SCCS) analyses in an observational database in the OMOP Common Data Model.


  • Extracts the necessary data from a database in OMOP Common Data Model format.
  • Optionally add seasonality using a spline function.
  • Optionally add age using a spline function.
  • Optionally add calendar time using a spline function.
  • Optionally correct for event-dependent censoring of the observation period.
  • Optionally add many covariates in one analysis (e.g. all drugs).
  • Options for constructing different types of covariates and risk windows, including pre-exposure windows (to capture contra-indications).
  • Optionally use regularization on all covariates except the outcome of interest.
  • Also provides the self-controlled risk interval design as a special case of the SCCS.


sccsData <- getDbSccsData(connectionDetails = connectionDetails,
                          cdmDatabaseSchema = cdmDatabaseSchema,
                          outcomeIds = 192671,
                          exposureIds = 1124300)

studyPop <- createStudyPopulation(sccsData = sccsData,
                                  outcomeId = 192671,
                                  firstOutcomeOnly = FALSE,
                                  naivePeriod = 180)

covarDiclofenac = createEraCovariateSettings(label = "Exposure of interest",
                                             includeEraIds = 1124300,
                                             start = 0,
                                             end = 0,
                                             endAnchor = "era end")

sccsIntervalData <- createSccsIntervalData(studyPop,
                                           eraCovariateSettings = covarDiclofenac)
model <- fitSccsModel(sccsIntervalData)
# SccsModel object
# Outcome ID: 192671
# Outcome count:
#        outcomeSubjects outcomeEvents outcomeObsPeriods
# 192671          272243        387158            274449
# Estimates:
# # A tibble: 1 x 7
#   Name                                ID Estimate LB95CI UB95CI logRr seLogRr
#   <chr>                            <dbl>    <dbl>  <dbl>  <dbl> <dbl>   <dbl>
# 1 Exposure of interest: Diclofenac  1000     1.18   1.13   1.24 0.167  0.0230


SelfControlledCaseSeries is an R package, with some functions implemented in C++.

System Requirements

Requires R (version 4.0.0 or higher). Installation on Windows requires RTools. Libraries used in SelfControlledCaseSeries require Java.


  1. See the instructions here for configuring your R environment, including Java.

  2. In R, use the following commands to download and install SelfControlledCaseSeries:


User Documentation

Documentation can be found on the package website.

PDF versions of the documentation are also available:



Read here how you can contribute to this package.


SelfControlledCaseSeries is licensed under Apache License 2.0


SelfControlledCaseSeries is being developed in R Studio.

Development status

Stable. Actively used in several projects.


  • This project is supported in part through the National Science Foundation grant IIS 1251151.
  • Part of the code is based on the SCCS package by Yonas Ghebremichael-Weldeselassie, Heather Whitaker, and Paddy Farrington.