class R4GeoFhirToDhisTransformerUtils extends AbstractGeoFhirToDhisTransformerUtils {

    @Override
    @Nullable
    public Location getLocation( @Nonnull IElement element ) throws TransformerException
    {
        final Element e = (Element) element;
        final List<Extension> locationExtensions = e.getExtensionsByUrl( GEO_LOCATION_URI );
        if ( locationExtensions.isEmpty() )
        {
            return null;
        }
        if ( locationExtensions.size() > 1 )
        {
            throw new TransformerMappingException( "Element " + e.fhirType() + " contains " + locationExtensions.size() + " GEO locations." );
        }
        final Extension locationExtension = locationExtensions.get( 0 );

        return new Location( getLocationComponentValue( e, locationExtension, LONGITUDE_URL ),
            getLocationComponentValue( e, locationExtension, LATITUDE_URL ) );
    }

    public  R4GeoFhirToDhisTransformerUtils( @Nonnull ScriptExecutionContext scriptExecutionContext );

}