Historically we decided to keep the extraction process (core pipeline) separate as a post-harmonization step since initially we did not trust the extracted data in the first place.
Now that this mistrust has faded/is fading, as we've seen that the extracted data is statistically coherent with the source data, the question is how to integrate it better in the pipeline. There are two main approaches
- inject units for each extracted test name. THe idea is to take each significant test name and do a ks test comparison with the harmonized data and come up with a candidate unit. After that the data can be harmonized normally. PROS: conceptually very clean, resolves the ambiguity of extracted data altogether. CONS: there are 1k test names with 100 entries, 400 with 1000 entries. Plus the extracted data tends to also have mismatch of units so the list will always require a lot of manual work
- treat unitless source units equally as extracted data. Which makes sense since ultimately they are the same thing once you trust the numerical entry. THis means that we could replace the extracted column with an unitless column --> assign target unit --> QC as before. N.B. The Qcing will still be required also in case 1 because of the unit mismatches that will happen regardless. PROS: much less work in maintaining injection lists CONS: more hackish and it will still require having a separate column
Historically we decided to keep the extraction process (core pipeline) separate as a post-harmonization step since initially we did not trust the extracted data in the first place.
Now that this mistrust has faded/is fading, as we've seen that the extracted data is statistically coherent with the source data, the question is how to integrate it better in the pipeline. There are two main approaches