How to use Observation's derivedFrom

I want to represent a measurement result in Observation and keep two code systems, CodeA and CodeB.
For simplicity, let’s assume that the object of Observation is height.
ca from CodeA and cb from CodeB are codes for the height measurement result, but they have different recommended unit systems. Centimeters for ca and meters for cb.

In a certain hospital, centimeters are used to measure height, so the code of Observation is ca from CodeA, and value’s unit is centimeters and the value is its original value.
An application needs to search using the CodeB system, so I also needs Observation instance which has CodeB’s code value and the value must have CodeB’s recommend units.
In such a case, is it better to create a new Observation, code=cb, and the value converted to meters, and put the original Observation in the derivedFrom element?

I understand it’s also OK that one Observation instance have two code (ca and cb) and FHIR client convert the value from centimeter to meters. but I don’t want to do that.

You should be able to use a single Observation, with two codings in Observation.code and then use the http://hl7.org/fhir/StructureDefinition/iso21090-PQ-translation to convey the value in both sets of units. It’s possible that not all receivers will support that, but it certainly meets the letter and spirit of the Observation expectations.