Over the last 25 years, the LOINC project has provided a standard classification for health measurements. Most SDTM programmers will encounter “LOINC Code” information in Lab data, but the classification system has been extended to cover other measurements such as ECG. So what is LOINC? Firstly, it provides a unique identifier for each observation, such as lab test. It also provides additional information, such as standardised specimen type, category etc. LOINC is an internationally recognized classification system, and is often requested in regulatory data submissions to provide context to clinical measurement data, for example Labs and ECG.
What can LOINC do for SDTM?
CDISC/NCI provide controlled terms for observations such as Lab test names (LBTESTCD, LBTEST) etc. So why would another classification system be useful? The simple answer lies in the difference between the classification systems. The CDISC/NCI controlled terms for Lab test are not unique. Instead they require additional information to differentiate the lab test. But LOINC codes are unique, so only the code is required to identify the test.
From the CDISC NCI SDTM Controlled terms:
LBTESTCD (C65047) Term “GLUC” (C105585)
LBTEST (C67154) Term “Glucose” (C105585)
However this is simply “A measurement of the glucose in a biological specimen.” Therefore the “specimen” is required to identify the measurement. CDISC NCI SDTM also provides a list of terms for Specimen (see below):
LBSPEC (C78734 Specimen Type)
Within the specimen types, the measurements are also classified by the testing process or method used. CDISC NCI SDTM also provides controlled terms for the different types of measurement e.g. Test strip (dipstick) vs. quantitative measurement, so LBMETHOD is also needed:
LBMETHOD (C85492 Method)
The table below shows how the CDISC SDTM Labs (LB) domain requires several columns populated to correctly identify a particular clinical measurement.
To represent a lab test in SDTM, several columns (LBTESTCD, LBSPEC, LBMETHOD etc.) are required, each having a different set of controlled terms. As the source data may not contain sufficient detail, it can be very difficult to correctly classify a Lab test directly into CDISC SDTM – especially partial data such as local lab results.
However LOINC provides a unique “code” for each test, along with a mapping to specimen type, method, units etc. Below is a breakdown of the LOINC codes for the Glucose example:
Glucose (Urine) returns 27 tests, classified by time (timepoint, 6, 8, 10, 24 hours) and method (Quantitative, Test Strip, Test Strip automated).
So for [timepoint], [test strip] there are three possible tests, depending on the units e.g. “positive/negative”, “mmol/L” , “mg/dL”.
Most results in SDTM are submitted in the SI units, in this case “mmol/L”, “mg/dL” being the conventional units. If the result is simply “positive/negative”, this would be submitted as a “character” result.
From the LOINC table and the CDISC NCI controlled terms, we can construct a code table to translate between the two schemes
Note the code table should map the LOINC code (5792-7) to the CDISC Code (C1005585) not the free text (Glucose). This is because the free text is subject to revision between CDISC controlled term version, but the CDISC Code stays constant for a given concept.
With the code table in place, a lab result would be processed as follows:
First get the SDTM LBTESTCD/LBTEST string pair
Next get the specimen type:
Original Unit (LBORRESU)
It is common for the unit string supplied by the EDC or central lab to not match the CDISC NCI string e.g. “MG/DL” instead of “mg/dL”. This requires manual mapping correction. However with the LOINC code table we know what the correct unit string should be (mg/dL) so can insert the value from the code table. A simple programmed check can compare both strings and trigger an alert for manual review.
We can extend the LOINC code table to assign the “SI Unit”, “Conventional Unit” and then document the conversion factor between the two.
Example Lab (LB) output
This process can be applied to other controlled terms, it is not restricted to just CDISC NCI SDTM. Additional information such as “Lab category” (LBCAT), can also be assigned using the LOINC code.
Lab Category (LBCAT) example:
Lab Toxicity Grade (LBTOXGR)
To calculate LBTOXGR, the measurement or lab test must first be identified and the appropriate grade threshold calculations found from the “Common Terminology Criteria
for Adverse Events (CTCAE)” documentation. Having the LOINC code makes this process more reliable, as the grade calculation may depend on several factors (specimen, unit etc). Additional information, such as the subjects gender may have to be included to select the correct calculation.
Example “Conventional Unit” to “SI Unit” conversion
Normalizing “Original Result” (–ORRES) to standard result numeric (–STRN) is common for most SDTM Findings datasets. This process relies on the correct identification of the measurement being standardized. We often find different conversion factors are required depending on the original unit, specimen etc. So LOINC codes are very helpful in controlling this process. Note this process can cover Lab, ECG, Vital Signs etc. as these all have available LOINC codes.
To drive the normalization process, we first prepare a code table aligning the LOINC code to the units.
Conversion table cont.
And using the equation below to calculate the normalized value:
If the conversion factors are not fractions e.g. 0.55 instead of 5/9, we simply set “Constant A” to the multiplier (0.55) and set “Constant B” to one. This will introduce a rounding error, which should be documented in the conversion table “Comment” column. Additional information, such as LOINC table version number, measurement name, specimen type or additional notes, should be included to provide context.
In preparation for the normalization process, we must align the “Original Units” to the CDISC/NCI terminology. This is done using a code table to convert the collected “Unit string” into the CDISC NCI Unit NCI Code. It’s recommended to “clean” the collected unit first e.g. upper-case the string and remove trailing spaces etc. This reduces the number of entries in the alignment code table and also makes the conversion more robust. CDISC NCI also provides a list of synonyms for each submission value. These can be imported into the alignment table from the NCI documentation. For example:
Example of data cleaning process:
With the aligned VSORRESU, for each input data row we perform a lookup using the LOINC code and “Unit NCICode” to get the conversion factors (Constant A, Constant B, Constant C, Constant K) and apply the normalization formula:
This approach has several advantages:
- Correct identification of measurement (Body Temperature).
- Uses the “unit” NCI code – not the collected text – which provides a “submission ready” unit.
- Allows different conversion factors for each measurement. For example, it is quite common for conversion factors to depend on specimen type or method.
- Provides full documentation of the normalization process (often requested for FDA submissions).
- Standardizes the process across all studies – but neutral to CDISC NCI SDTM terminology version, by using the NCI Code, not “unit” text.
Advantages of LOINC
Using the above approach gives a consistent assignment of several e.g. SDTM LB columns, and provides a mechanism to standardise the unit normalization process.
For local lab data or results without LOINC codes, there is a robust coding process available with several tools for assignment of LOINC.
LOINC also provides the option of more granular and reliable grouping of results for analysis and reporting, as each lab test is identified.
Standard processes, such as normalization to SI units, assignment of “Category”, calculation of “LBTOXGR” etc. can all leverage the LOINC code to provide a fully documented and standardized process. This can be applied across all study SDTM conversions.
Finally, LOINC Codes are available for several SDTM Findings datasets e.g. Labs (LB), Vital Signs (VS), ECG (EG) etc.