class R4ObservationFhirToDhisTransformerUtils extends AbstractObservationFhirToDhisTransformerUtils {

    @Override
    @Nullable
    public IBaseBackboneElement getBackboneElement( @Nullable List<? extends IBaseBackboneElement> backboneElements, @Nonnull String system, @Nonnull String code )
    {
        if ( backboneElements == null )
        {
            return null;
        }
        return backboneElements.stream().map( ObservationComponentComponent.class::cast )
            .filter( c -> getCodeTransformerUtils().containsCode( c.getCode(), system, code ) )
            .findFirst().orElse( new ObservationComponentComponent() );
    }

    public  R4ObservationFhirToDhisTransformerUtils( @Nonnull ScriptExecutionContext scriptExecutionContext, @Nonnull R4FhirClientFhirToDhisTransformerUtils clientTransformUtils,
        @Nonnull R4CodeFhirToDhisTransformerUtils codeTransformerUtils );

}