As far as I understand you mean values that are definitely incorrect.
There are the following options:
Option 1: Keep the records. Put the results 'as is' in value_as_number field.
Advantages: We do not loose records
Disadvantages: Data does not look clean (especially if a decent part of data is of such kind)
Option 2: Keep the records. Populate NULL instead of incorrect values.
Advantage: We do not loose records. We store the fact that a test was done.
Disadvantage: We loose source values.
Option 3: Throw out such records.
Advantages: Only good test results are stored. Data looks clean.
Disadvantages: We loose records that someone may need
Option 4: Flag incorrect results someway. Put the incorrect result to value_as_number as is.
And populate measurement.value_as_concept_id (or observation.value_as_concept_id) with a concept representing incorrect result
45884071 - Incorrect test results
45876576 - Unknown (missing)
- We do not loose records (the facts that a test was performed)
- We mark incorrect result values, so it is easy to filter them out if needed
- 'Incorrect test result' may coincide with result interpretation already presented in source data, so this flag will not uniquely identify this group of records
- This is not a result interpretation (High/Low etc) stored in source data but this is an ETLer's interpretation derived from source data
- There could be a conflict if source data already contains a result interpretation
Probably someone could have a better idea how to mark such records.
Any more ideas, comments?