importing lab normal values: a case study · ©#oc14boston research it at ijb institut jules...
TRANSCRIPT
©
Importing Lab Normal Values:
A Case StudyHenrik Dittmann & Maxime Steisel
IT Department, Institut Jules Bordet, Brussels, Belgium
1
©#OC14Boston
Session Overview
Who are we?
What do we do with OpenClinica?
Why are we concerned about lab normal values?
What does our system do with them?
What would we like to do in the future?
What would you like to do?
2
©#OC14Boston
Research IT at IJB
Institut Jules Bordet:
public and research hospital,
specializing in oncology
Research IT group:
provides IT systems and tools
for clinical and translational research
investigates new technologies in these areas
CTSU (Clinical Trial Support Unit):
provides operational support, data management,
monitoring, etc. for investigator-initiated clinical trials
sponsored by IJB
3
©#OC14Boston
OpenClinica at IJB
OpenClinica Enterprise Edition, employed largely for
investigator-initiated clinical trials since May 2013
Currently 4 active trials, 1 in preparation
Typically phase II, 20-200 subjects, multi-centric, multi-
country
Rather complex eCRFs: 15-40 CRFs, 10-20 study
events
CRFs built on the base of CDISC CDASH:
standardization
reusability
4
©#OC14Boston
Lab Normal Values
It is time consuming to have to enter the lab normal
values on every lab CRF.
5
©#OC14Boston
Variation in Lab Normal Values
LNVs will stay the same across many visits for a subject
LNVs will stay the same across many subjects for a site
Changes can occur when
lab instruments are changed or recalibrated
the site switches to another lab
the site regularly uses more than one lab
+ a test is exceptionally done at another lab
6
©#OC14Boston
Lab Normal Value References
Rather than to enter the LNVs each time, references can
be made:
to the previous / a specified visit that uses the same LNVs
(per subject)
to a repository of LNV sheets stored elsewhere in the CRF
(per subject)
to a repository of LNV sheets independent of subjects (per
site, not possible in OpenClinica)
Our solution:
store LNV sheets in a repeating event
allow specification of LNVs in the lab page as well as a
reference to an occurrence of the repeating event
7
©#OC14Boston
LNV Reference Sheets
8
©#OC14Boston
Subject-Independent LNVs
Provide users with an external interface for the upload of
LNVs:
enter and update (in case
of data entry errors)
LNV sheets that will be
applicable for all subjects
Users can still enter LNVs directly in OpenClinica:
in the lab page itself (per lab CRF)
as an individual page in the LNV event (per subject)
9
OpenClinica
LNV
Upload
WS
©#OC14Boston
User Interface
Web interface:
authenticate against OpenClinica
select site
enter CRF data for a new or as an update to an existing
LNV sheet
Upload of CSV data (planned)
Import of HL7 messages (e.g. from LIMS, long-term
goal)
Scheduled process to add the LNV sheets that have
been defined already to any new patients
10
©#OC14Boston
Importing an LNV Sheet
Implemented as a layer of Web services
on top of OpenClinica’s SOAP services
using a database for recording import data and success as
well as study-specific metadata
11
Web Service OC Web Service Internal DB
getSites Study: listAll
getOccurrences imports
getTests tests
getUnits units
updateLNVs StudySubject: listAllByStudy,
Event: schedule, Data: import
oids, imports, values,
patients
completePatients StudySubject: listAllByStudy,
Event: schedule, Data: import
oids, imports, values,
patients
©#OC14Boston
Import process
1) Schedule a new LNV event for each subject in the site;
OCC = max(occurrences)
2) While min(occurrences) ≠ OCC: Schedule a new LNV
event for each subject where occurrence ≠ OCC
3) Upload data into the OCCth event for each subject
Record OCC, the data itself and success/failure per
subject in DB, together with username and timestamp
Provide metadata per study in DB: OIDs used, list of
tests, list of units
12
©#OC14Boston
Examples I
Add a new LNV sheet:
Update an LNV sheet:
13
1 2 3
PTN-301 L1.0 L1.1
PTN-302 L1.0 L1.1
PTN-303 L1.0 L1.1
PTN-304 L1.0 L1.1 LX1.0
PTN-305 L1.0 L1.1
PTN-306 L1.0 L1.1
PTN-307 L1.0 L1.1
PTN-308 L1.0 L1.1
PTN-309 L1.0 L1.1
PTN-310 L1.0 L1.1
PTN-311 L1.0 L1.1
1 2 3 4
PTN-301 L1.0 L1.1 --- L2.0
PTN-302 L1.0 L1.1 --- L2.0
PTN-303 L1.0 L1.1 --- L2.0
PTN-304 L1.0 L1.1 LX1.0 L2.0
PTN-305 L1.0 L1.1 --- L2.0
PTN-306 L1.0 L1.1 --- L2.0
PTN-307 L1.0 L1.1 --- L2.0
PTN-308 L1.0 L1.1 --- L2.0
PTN-309 L1.0 L1.1 --- L2.0
PTN-310 L1.0 L1.1 --- L2.0
PTN-311 L1.0 L1.1 --- L2.0
1 2 3 4
PTN-301 L1.0 L1.1' --- L2.0
PTN-302 L1.0 L1.1' --- L2.0
PTN-303 L1.0 L1.1' --- L2.0
PTN-304 L1.0 L1.1' LX1.0 L2.0
PTN-305 L1.0 L1.1' --- L2.0
PTN-306 L1.0 L1.1' --- L2.0
PTN-307 L1.0 L1.1' --- L2.0
PTN-308 L1.0 L1.1' --- L2.0
PTN-309 L1.0 L1.1' --- L2.0
PTN-310 L1.0 L1.1' --- L2.0
PTN-311 L1.0 L1.1' --- L2.0
©#OC14Boston
Examples II
Add a new study subject:
14
1 2 3 4
PTN-301 L1.0 L1.1' --- L2.0
PTN-302 L1.0 L1.1' --- L2.0
PTN-303 L1.0 L1.1' --- L2.0
PTN-304 L1.0 L1.1' LX1.0 L2.0
PTN-305 L1.0 L1.1' --- L2.0
PTN-306 L1.0 L1.1' --- L2.0
PTN-307 L1.0 L1.1' --- L2.0
PTN-308 L1.0 L1.1' --- L2.0
PTN-309 L1.0 L1.1' --- L2.0
PTN-310 L1.0 L1.1' --- L2.0
PTN-311 L1.0 L1.1' --- L2.0
PTN-312
1 2 3 4
PTN-301 L1.0 L1.1' --- L2.0
PTN-302 L1.0 L1.1' --- L2.0
PTN-303 L1.0 L1.1' --- L2.0
PTN-304 L1.0 L1.1' LX1.0 L2.0
PTN-305 L1.0 L1.1' --- L2.0
PTN-306 L1.0 L1.1' --- L2.0
PTN-307 L1.0 L1.1' --- L2.0
PTN-308 L1.0 L1.1' --- L2.0
PTN-309 L1.0 L1.1' --- L2.0
PTN-310 L1.0 L1.1' --- L2.0
PTN-311 L1.0 L1.1' --- L2.0
PTN-312 L1.0 L1.1' --- L2.0
©#OC14Boston
Referencing LNVs in Rules
Custom Rules Generator:
allows data managers to specify rules in an Access
database, using generic item names
extracts OIDs from metadata exports of testing and
production environments
creates XML files
Syntax extension for rule expressions: “$X” variableLBREFID eq $X and LBORRES * 2 gt SE_LNV[$X].F_LNV.LBORNHI
will be replaced by (using pseudocode here):(LBREFID eq 1 and LBORRES * 2 gt SE_LNV[1].F_LNV.LBORNHI) or
(LBREFID eq 2 and LBORRES * 2 gt SE_LNV[2].F_LNV.LBORNHI) or
(LBREFID eq 3 and LBORRES * 2 gt SE_LNV[3].F_LNV.LBORNHI) or
...
15
©#OC14Boston
Working with OC…
…or against it?
We don’t want to interfere with OpenClinica, modifying or
extending the system directly
Major architectural change to allow data that is not
specific to a study subject
Web Services provide an API that (in this case) gives
access to all necessary functions
Solution does not make use of EE-specific features
► Working around OC
16
©#OC14Boston
Pros and Cons
+ Support for
both site-wide and per-subject LNVs
corrections to a LNV sheet
propagation to subjects created afterwards
o Can be referenced through rules (not efficient, though)
– Data is really not subject-specific but specific to the site
– Queries must be addressed for each subject individually
– Time windows during which manual entry into a subject’s
LNV sheets can cause the import to fail for this subject
17
©#OC14Boston
Outlook
1) Currently, OpenClinica does only cater for study data
that is specific to a subject
except for some metadata (which is not accessible to rules)
► ODM provides a place for study-specific reference data
in the ReferenceData element
2) Build interfaces to other systems with OpenClinica’s
web services, e.g., to get LNVs and lab data from LIMS
interoperability (read HL7, convert tests, units, …)
remove patient information from lab data before importing
that
18
©#OC14Boston
Thank you for your attention!
What would you like to do?
dealing with lab normal values
dealing with data that are not patient-specific
interfacing OpenClinica
…
www.bordet.be
www.br-e-a-s-t.org
19