class R4CodeFhirToDhisTransformerUtils extends AbstractCodeFhirToDhisTransformerUtils {

    @Nonnull
    @Override
    public List<SystemCodeValue> getSystemCodeValues( @Nullable ICompositeType codeableConcept )
    {
        if ( codeableConcept == null )
        {
            return Collections.emptyList();
        }
        final List<SystemCodeValue> result = new ArrayList<>();
        for ( final Coding coding : ((CodeableConcept) codeableConcept).getCoding() )
        {
            result.add( new SystemCodeValue( coding.getSystem(), coding.getCode() ) );
        }
        return result;
    }

    public  R4CodeFhirToDhisTransformerUtils( @Nonnull ScriptExecutionContext scriptExecutionContext,
        @Nonnull CodeRepository codeRepository,
        @Nonnull SystemCodeRepository systemCodeRepository );

}